]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
5 years agoDaily bump.
GCC Administrator [Thu, 6 Feb 2020 00:18:31 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Wed, 5 Feb 2020 00:18:32 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Tue, 4 Feb 2020 00:18:45 +0000 (00:18 +0000)] 
Daily bump.

5 years ago[OpenMP] Add missing parameters to omp_lib documentation (PR fortran/93541)
Tobias Burnus [Mon, 3 Feb 2020 11:14:58 +0000 (12:14 +0100)] 
[OpenMP] Add missing parameters to omp_lib documentation (PR fortran/93541)

        Backported from mainline
        2020-02-03  Tobias Burnus  <tobias@codesourcery.com>

        PR fortran/93541
        * intrinisic.texi (OpenMP Modules OMP_LIB and OMP_LIB_KINDS):
        Add undocumented parameters from omp_lib.f90.in.

5 years ago[Fortran] Disable front-end optimization for OpenACC atomic (PR93462)
Tobias Burnus [Mon, 3 Feb 2020 11:09:46 +0000 (12:09 +0100)] 
[Fortran] Disable front-end optimization for OpenACC atomic (PR93462)

Backported from mainline
2020-01-31  Tobias Burnus  <tobias@codesourcery.com>

PR fortran/93462
* frontend-passes.c (gfc_code_walker): For EXEC_OACC_ATOMIC, set
in_omp_atomic to true prevent front-end optimization.

PR fortran/93462
* gfortran.dg/goacc/atomic-1.f90: New.

5 years agoFortran] PR93309 – permit repeated 'implicit none(external)'
Tobias Burnus [Mon, 3 Feb 2020 10:48:17 +0000 (11:48 +0100)] 
Fortran] PR93309 – permit repeated 'implicit none(external)'

Backported from mainline
2020-01-21  Tobias Burnus  <tobias@codesourcery.com>

PR fortran/93309
* interface.c (gfc_procedure_use): Also check parent namespace for
'implict none (external)'.
* symbol.c (gfc_get_namespace): Don't set has_implicit_none_export
to parent namespace's setting.

Backported from mainline
2020-01-21  Tobias Burnus  <tobias@codesourcery.com>

PR fortran/93309
* gfortran.dg/external_implicit_none_2.f90: New.

5 years agoDaily bump.
GCC Administrator [Mon, 3 Feb 2020 00:18:50 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sun, 2 Feb 2020 00:18:32 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sat, 1 Feb 2020 00:18:28 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Fri, 31 Jan 2020 00:18:49 +0000 (00:18 +0000)] 
Daily bump.

5 years agoFix ICE in pa_elf_select_rtx_section.
John David Anglin [Thu, 30 Jan 2020 12:29:35 +0000 (07:29 -0500)] 
Fix ICE in pa_elf_select_rtx_section.

2020-01-30  John David Anglin  <danglin@gcc.gnu.org>

* config/pa/pa.c (pa_elf_select_rtx_section): Place function pointers
without a DECL in .data.rel.ro.local.

5 years agoRISC-V: Disallow regrenme if the TO register never used before for interrupt functions
Kito Cheng [Fri, 17 Jan 2020 11:49:15 +0000 (19:49 +0800)] 
RISC-V: Disallow regrenme if the TO register never used before for interrupt functions

gcc/ChangeLog

PR target/93304
* config/riscv/riscv-protos.h (riscv_hard_regno_rename_ok): New.
* config/riscv/riscv.c (riscv_hard_regno_rename_ok): New.
* config/riscv/riscv.h (HARD_REGNO_RENAME_OK): Defined.

gcc/testsuite/ChangeLog

PR target/93304
* gcc.target/riscv/pr93304.c: New test.

5 years agoc++: Drop alignas restriction for stack variables.
Jason Merrill [Wed, 29 Jan 2020 22:16:12 +0000 (17:16 -0500)] 
c++: Drop alignas restriction for stack variables.

Since expand_stack_vars and such know how to deal with variables aligned
beyond MAX_SUPPORTED_STACK_ALIGNMENT, we shouldn't reject alignas of large
alignments.  And if we don't do that, there's no point in having
check_cxx_fundamental_alignment_constraints at all, since
check_user_alignment already enforces MAX_OFILE_ALIGNMENT.

PR c++/89357
* c-attribs.c (check_cxx_fundamental_alignment_constraints): Remove.

5 years agoDaily bump.
GCC Administrator [Thu, 30 Jan 2020 00:18:31 +0000 (00:18 +0000)] 
Daily bump.

5 years ago[AArch64] PR92424: Fix -fpatchable-function-entry=N,M with BTI
Szabolcs Nagy [Wed, 15 Jan 2020 12:23:40 +0000 (12:23 +0000)] 
[AArch64] PR92424: Fix -fpatchable-function-entry=N,M with BTI

This is a workaround that emits a BTI after the function label if that
is followed by a patch area. We try to remove the BTI that follows the
patch area (this may fail e.g. if the first instruction is a PACIASP).

So before this commit -fpatchable-function-entry=3,1 with bti generates

    .section __patchable_function_entries
    .8byte .LPFE
    .text
  .LPFE:
    nop
  foo:
    nop
    nop
    bti c // or paciasp
    ...

and after this commit

    .section __patchable_function_entries
    .8byte .LPFE
    .text
  .LPFE:
    nop
  foo:
    bti c
    nop
    nop
    // may be paciasp
    ...

and with -fpatchable-function-entry=1 (M=0) the code now is

  foo:
    bti c
    .section __patchable_function_entries
    .8byte .LPFE
    .text
  .LPFE:
    nop
    // may be paciasp
    ...

There is a new bti insn in the middle of the patchable area users need
to be aware of unless M=0 (patch area is after the new bti) or M=N
(patch area is before the label, no new bti). Note: bti is not added to
all functions consistently (it can be turned off per function using a
target attribute or the compiler may detect that the function is never
called indirectly), so if bti is inserted in the middle of a patch area
then user code needs to deal with detecting it.

Tested on aarch64-none-linux-gnu.

gcc/ChangeLog:

PR target/92424
* config/aarch64/aarch64.c (aarch64_declare_function_name): Set
cfun->machine->label_is_assembled.
(aarch64_print_patchable_function_entry): New.
(TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define.
* config/aarch64/aarch64.h (struct machine_function): New field,
label_is_assembled.

gcc/testsuite/ChangeLog:

PR target/92424
* gcc.target/aarch64/pr92424-2.c: New test.
* gcc.target/aarch64/pr92424-3.c: New test.

5 years agoDaily bump.
GCC Administrator [Wed, 29 Jan 2020 00:18:34 +0000 (00:18 +0000)] 
Daily bump.

5 years agoc++: Allow template rvalue-ref conv to bind to lvalue ref.
Jason Merrill [Tue, 28 Jan 2020 17:26:10 +0000 (12:26 -0500)] 
c++: Allow template rvalue-ref conv to bind to lvalue ref.

When I implemented the [over.match.ref] rule that a reference conversion
function needs to match l/rvalue of the target reference type it changed our
handling of this testcase.  It seems to me that our current behavior is what
the standard says, but it doesn't seem desirable, and all the other
compilers have our old behavior.  So let's limit the change to non-templates
until there's some clarification from the committee.

PR c++/90546
* call.c (build_user_type_conversion_1): Allow a template conversion
returning an rvalue reference to bind directly to an lvalue.

5 years agoc++: Function declared with typedef with eh-specification.
Jason Merrill [Mon, 27 Jan 2020 22:55:14 +0000 (17:55 -0500)] 
c++: Function declared with typedef with eh-specification.

We just need to handle the exception specification like other properties of
a function typedef.

PR c++/90731
* decl.c (grokdeclarator): Propagate eh spec from typedef.

5 years agoc++: Fix array of char typedef in template (PR90966).
Jason Merrill [Mon, 27 Jan 2020 03:19:47 +0000 (22:19 -0500)] 
c++: Fix array of char typedef in template (PR90966).

Since Martin Sebor's patch for PR 71625 to change braced array initializers
to STRING_CST in some cases, we need to be ready for STRING_CST with types
that are changed by tsubst.  fold_convert doesn't know how to deal with
STRING_CST, which is reasonable; we really shouldn't expect it to here.  So
let's handle STRING_CST separately.

PR c++/90966
* pt.c (tsubst_copy) [STRING_CST]: Don't use fold_convert.

5 years agoc++: Fix ICE with lambda in member operator (PR93279)
Jason Merrill [Fri, 24 Jan 2020 23:20:56 +0000 (18:20 -0500)] 
c++: Fix ICE with lambda in member operator (PR93279)

Here the problem was that we were remembering the lookup in template scope,
and then trying to reuse that lookup in the instantiation without
substituting into it at all.  The simplest solution is to not try to
remember a lookup that finds a class-scope declaration, as in that case
doing the normal lookup again at instantiation time will always find the
right declarations.

PR c++/93279 - ICE with lambda in member operator.
* name-lookup.c (maybe_save_operator_binding): Don't remember
class-scope bindings.

5 years agoDaily bump.
GCC Administrator [Tue, 28 Jan 2020 00:18:29 +0000 (00:18 +0000)] 
Daily bump.

5 years agoc++: Bogus error using namespace alias [PR91826]
Nathan Sidwell [Mon, 27 Jan 2020 13:49:43 +0000 (05:49 -0800)] 
c++: Bogus error using namespace alias [PR91826]

My changes to is_nested_namespace broke is_ancestor's use where a namespace
alias might be passed in.  This changes is_ancestor to look through the alias.

PR c++/91826
* name-lookup.c (is_ancestor): Allow CHILD to be a namespace alias.

5 years ago[AArch64] Fix shrinkwrapping interactions with atomics (PR92692)
Wilco Dijkstra [Fri, 17 Jan 2020 13:17:21 +0000 (13:17 +0000)] 
[AArch64] Fix shrinkwrapping interactions with atomics (PR92692)

The separate shrinkwrapping pass may insert stores in the middle
of atomics loops which can cause issues on some implementations.
Avoid this by delaying splitting atomics patterns until after
prolog/epilog generation.

gcc/
PR target/92692
* config/aarch64/aarch64.c (aarch64_split_compare_and_swap)
Add assert to ensure prolog has been emitted.
(aarch64_split_atomic_op): Likewise.
* config/aarch64/atomics.md (aarch64_compare_and_swap<mode>)
Use epilogue_completed rather than reload_completed.
(aarch64_atomic_exchange<mode>): Likewise.
(aarch64_atomic_<atomic_optab><mode>): Likewise.
(atomic_nand<mode>): Likewise.
(aarch64_atomic_fetch_<atomic_optab><mode>): Likewise.
(atomic_fetch_nand<mode>): Likewise.
(aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise.
(atomic_nand_fetch<mode>): Likewise.

(cherry picked from commit e5e07b68187b9aa334519746c45b8cffc5eb7e5c)

5 years agoDaily bump.
GCC Administrator [Mon, 27 Jan 2020 00:18:48 +0000 (00:18 +0000)] 
Daily bump.

5 years agotestsuite: xfail gcc.target/i386/pr91298-?.c on Solaris/x86 with as
Rainer Orth [Sun, 26 Jan 2020 20:39:07 +0000 (21:39 +0100)] 
testsuite: xfail gcc.target/i386/pr91298-?.c on Solaris/x86 with as

The new gcc.target/i386/pr91298-?.c testcases FAIL on Solaris/x86 with the
native assembler:

FAIL: gcc.target/i386/pr91298-1.c (test for excess errors)

Excess errors:
Assembler: pr91298-1.c
        "/var/tmp//ccE6r3xb.s", line 5 : Syntax error
        Near line: "    .globl  $quux"
        "/var/tmp//ccE6r3xb.s", line 6 : Syntax error
        Near line: "    .type   $quux, @function"
        "/var/tmp//ccE6r3xb.s", line 7 : Syntax error
        Near line: "$quux:"
        "/var/tmp//ccE6r3xb.s", line 15 : Syntax error
        Near line: "    .size   $quux, .-$quux"
        "/var/tmp//ccE6r3xb.s", line 24 : Syntax error
        Near line: "    movl    $($a), %eax"
        "/var/tmp//ccE6r3xb.s", line 38 : Syntax error
        Near line: "    leal    ($a)(,%eax,4), %eax"
        "/var/tmp//ccE6r3xb.s", line 51 : Syntax error
        Near line: "    movl    ($a), %eax"
        "/var/tmp//ccE6r3xb.s", line 63 : Syntax error
        Near line: "    movl    ($a)+16, %eax"
        "/var/tmp//ccE6r3xb.s", line 97 : Syntax error
        Near line: "    movl    $($quux), %eax"
        "/var/tmp//ccE6r3xb.s", line 101 : Syntax error
        Near line: "    .globl  $a"
        "/var/tmp//ccE6r3xb.s", line 104 : Syntax error
        Near line: "    .type   $a, @object"
        "/var/tmp//ccE6r3xb.s", line 105 : Syntax error
        Near line: "    .size   $a, 72"
        "/var/tmp//ccE6r3xb.s", line 106 : Syntax error
        Near line: "$a:"
        "/var/tmp//ccE6r3xb.s", line 228 : Syntax error
        Near line: "    .long   ($a)"

FAIL: gcc.target/i386/pr91298-2.c (test for excess errors)

It only allows letters, digits, '_' and '.' in identifiers:
https://docs.oracle.com/cd/E37838_01/html/E61064/eqbsx.html#XALRMeoqjw

For lack of an effective-target keyword matching -fdollars-in-identifiers,
this patch fixes this by xfailing them on *-*-solaris2.* && !gas.

Tested on i386-pc-solaris2.11 with as and gas and x86_64-pc-linux-gnu.

* gcc.target/i386/pr91298-1.c: xfail on Solaris/x86 with native
assembler.
* gcc.target/i386/pr91298-2.c: Likewise.

5 years agoDaily bump.
GCC Administrator [Sun, 26 Jan 2020 00:18:21 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sat, 25 Jan 2020 00:18:24 +0000 (00:18 +0000)] 
Daily bump.

5 years agoc++: Unshare expressions from constexpr cache.
Jason Merrill [Thu, 23 Jan 2020 20:45:36 +0000 (15:45 -0500)] 
c++: Unshare expressions from constexpr cache.

Another place we need to unshare cached expressions.

PR c++/92852 - ICE with generic lambda and reference var.
* constexpr.c (maybe_constant_value): Likewise.

5 years agolibstdc++: Simplify makefile rule for largefile-config.h (PR91947)
Jonathan Wakely [Fri, 24 Jan 2020 11:13:55 +0000 (11:13 +0000)] 
libstdc++: Simplify makefile rule for largefile-config.h (PR91947)

The previous rule could leave an incomplete file if the build was
interrupted, which would then not be remade if make was run again.

This makes the rule more robust by writing to a temporary file and only
moving it into place as the final step. It also simplifies the rule so
that only the essential macro definitions are written to the file, not
the explanatory comments and commented out #undef lines.

Also, the macro for enabling LFS on Mac OS X 10.5 is now set
unconditionally, which is a bug fix from upstream autoconf.

Backport from mainline
2020-01-23  Jonathan Wakely  <jwakely@redhat.com>

PR libstdc++/91947
* include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
rule.
* include/Makefile.in: Regenerate.

5 years agolibstdc++: Fix recent documentation changes
Jonathan Wakely [Fri, 24 Jan 2020 11:17:58 +0000 (11:17 +0000)] 
libstdc++: Fix recent documentation changes

Backport from mainline
2020-01-20  Jonathan Wakely  <jwakely@redhat.com>

* doc/xml/faq.xml: Fix grammar.
* doc/xml/manual/appendix_contributing.xml: Improve instructions.
* doc/xml/manual/spine.xml: Update copyright years.
* doc/html/*: Regenerate.

5 years agoDaily bump.
GCC Administrator [Fri, 24 Jan 2020 00:18:13 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Thu, 23 Jan 2020 00:18:53 +0000 (00:18 +0000)] 
Daily bump.

5 years agoCherry-pick 15 bugfixes from mainline
Jakub Jelinek [Wed, 22 Jan 2020 19:16:28 +0000 (20:16 +0100)] 
Cherry-pick 15 bugfixes from mainline

r10-6140-gd80f0a8dc9c2e5886bb79bddee2674e1d3f9d105
r10-6137-gc892d8f58f6fed46c343bdb6dd4d365f08f801b8
r10-6136-g44a9d801a7080d39658754ad603536da6cff2cd0
r10-6135-ga38979d9d7a4ab08336436052704028c56187618
r10-6118-gbd0a3e244d94ad4a5e41f01ebf285f0861cb4a03
r10-6104-g51e010b5f75c1fff06425a72702c1bf82a3ab053
r10-6041-gc60a18f8056facdcf370ce0e5f51550c9df5b539
r10-5954-gfbbc4c24fd7ba87e0c47cd965ae624afba6fa375
r10-5897-g91df4397a1404df65de6de23426294c50ab88bd2
r10-5829-ga0ab54de0ec3e0d48b2a681f7f78fe14bc4099eb
r10-5723-g5a6e28b5bae7a236b35994d0f64fd902a574872c
r10-5712-g4ea5d54b3c7175de045589f994fc94ed7e59d80d
r10-5697-g2c8297996a7ab3496c5d2f798cdbe4cab749468e
r10-5650-g7cd268ad6a6f71877744539d17ed53e752774bfa
r10-5618-g6c7b84305a5e686644ee64bfd2d415f3f43fa85b

5 years agoaarch64: Fix aarch64_expand_subvti constant handling [PR93335]
Jakub Jelinek [Wed, 22 Jan 2020 17:08:31 +0000 (18:08 +0100)] 
aarch64: Fix aarch64_expand_subvti constant handling [PR93335]

The two patterns that call aarch64_expand_subvti ensure that {low,high}_in1
is a register, while {low,high}_in2 can be a register or immediate.
subdi3_compare1_imm uses the aarch64_plus_immediate predicate for its last
two operands (the value and negated value), but aarch64_expand_subvti calls
it whenever low_in2 is a CONST_INT, which leads to ICEs during vregs pass,
as the emitted insn is not recognized as valid subdi3_compare1_imm.
The following patch fixes that by only using subdi3_compare1_imm if it is ok
to do so, and otherwise force the constant into register and use the
non-immediate version - subdi3_compare1.
Furthermore, previously the code was calling force_reg on high_in2 only if
low_in2 is CONST_INT, on the (reasonable) assumption is that only if low_in2
is a CONST_INT, high_in2 can be non-REG, but with the above changes even in
the else we might have CONST_INT and force_reg doesn't do anything if the
operand is already a REG, so this patch calls it unconditionally.

2020-01-22  Jakub Jelinek  <jakub@redhat.com>

PR target/93335
* config/aarch64/aarch64.c (aarch64_expand_subvti): Only use
gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate
predicate, not whenever it is CONST_INT.  Otherwise, force_reg it.
Call force_reg on high_in2 unconditionally.

* gcc.c-torture/compile/pr93335.c: New test.

5 years agoi386: Fix up -fdollars-in-identifiers with identifiers starting with $ in -masm=att...
Jakub Jelinek [Wed, 22 Jan 2020 17:07:54 +0000 (18:07 +0100)] 
i386: Fix up -fdollars-in-identifiers with identifiers starting with $ in -masm=att [PR91298]

In AT&T syntax leading $ is special, so if we have identifiers that start
with dollar, we usually fail to assemble it (or assemble incorrectly).
As mentioned in the PR, what works is wrapping the identifiers inside of
parens, like:
movl $($a), %eax
leaq ($a)(,%rdi,4), %rax
movl ($a)(%rip), %eax
movl ($a)+16(%rip), %eax
.globl $a
.type $a, @object
.size $a, 72
$a:
.string "$a"
.quad ($a)
(this is x86_64 -fno-pic -O2).  In some places ($a) is not accepted,
like as .globl operand, in .type, .size, so the patch overrides
ASM_OUTPUT_SYMBOL_REF rather than e.g. ASM_OUTPUT_LABELREF.
I didn't want to duplicate what assemble_name is doing (following
transparent aliases), so split assemble_name into two parts; just
mere looking at the first character of a name before calling assemble_name
wouldn't be good enough, a transparent alias could lead from a name
not starting with $ to one starting with it and vice versa.

2020-01-22  Jakub Jelinek  <jakub@redhat.com>

PR target/91298
* output.h (assemble_name_resolve): Declare.
* varasm.c (assemble_name_resolve): New function.
(assemble_name): Use it.
* config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define.

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

5 years agoopenmp: Fix up !$omp target parallel handling
Jakub Jelinek [Wed, 22 Jan 2020 17:07:03 +0000 (18:07 +0100)] 
openmp: Fix up !$omp target parallel handling

The PR93329 fix revealed we ICE on !$omp target parallel, this change fixes
that.

2020-01-22  Jakub Jelinek  <jakub@redhat.com>

* parse.c (parse_omp_structured_block): Handle ST_OMP_TARGET_PARALLEL.
* trans-openmp.c (gfc_trans_omp_target)
<case EXEC_OMP_TARGET_PARALLEL>: Call pushlevel first.

* gfortran.dg/gomp/target-parallel1.f90: New test.
* gfortran.dg/goacc/pr93329.f90: Enable commented out target parallel
test.

5 years agoopenmp: Teach omp_code_to_statement about rest of OpenMP statements
Jakub Jelinek [Wed, 22 Jan 2020 17:05:49 +0000 (18:05 +0100)] 
openmp: Teach omp_code_to_statement about rest of OpenMP statements

The omp_code_to_statement function added with the initial OpenACC support
only handled small subset of the OpenMP statements, leading to ICE if
any other OpenMP directive appeared inside of OpenACC directive.

2020-01-22  Jakub Jelinek  <jakub@redhat.com>

PR fortran/93329
* openmp.c (omp_code_to_statement): Handle remaining EXEC_OMP_*
cases.

* gfortran.dg/goacc/pr93329.f90: New test.

5 years agoriscv: Fix up riscv_rtx_costs for RTL checking (PR target/93333)
Jakub Jelinek [Wed, 22 Jan 2020 16:55:23 +0000 (17:55 +0100)] 
riscv: Fix up riscv_rtx_costs for RTL checking (PR target/93333)

As mentioned in the PR, during combine rtx_costs can be called sometimes
even on RTL that has not been validated yet and so can contain even operands
that aren't valid in any instruction.

2020-01-21  Jakub Jelinek  <jakub@redhat.com>

PR target/93333
* config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify
the last two operands are CONST_INT_P before using them as such.

* gcc.c-torture/compile/pr93333.c: New test.

5 years agopowerpc: Fix ICE with fp conditional move (PR target/93073)
Jakub Jelinek [Wed, 22 Jan 2020 16:54:32 +0000 (17:54 +0100)] 
powerpc: Fix ICE with fp conditional move (PR target/93073)

The following testcase ICEs, because for TFmode the particular subtraction
pattern (*subtf3) is not enabled with the given options.  Using
expand_simple_binop instead of emitting the subtraction by hand just moves
the ICE one insn later, NEG of ABS is not then recognized, etc., but
ultimately the problem is that when rs6000_emit_cmove is called for floating
point operand mode (and earlier condition ensures that in that case
compare_mode is also floating point), the expander makes sure the
operand mode is SFDF, but for the comparison mode nothing checks it, yet
there is just one *fsel* pattern with 2 separate SFDF iterators.

The following patch fixes it by giving up if compare_mode is not SFmode or
DFmode.

2020-01-21  Jakub Jelinek  <jakub@redhat.com>

PR target/93073
* config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for
compare_mode other than SFmode or DFmode.

* gcc.target/powerpc/pr93073.c: New test.

5 years agoc++: Fix deprecated attribute handling on templates (PR c++/93228)
Jakub Jelinek [Wed, 22 Jan 2020 16:52:11 +0000 (17:52 +0100)] 
c++: Fix deprecated attribute handling on templates (PR c++/93228)

As the following testcase shows, when deprecated attribute is on a template,
we'd never print the message if any, because the attribute is not
present on the TEMPLATE_DECL with which warn_deprecated_use is called,
but on its DECL_TEMPLATE_RESULT or its type.

2020-01-17  Jakub Jelinek  <jakub@redhat.com>

PR c++/93228
* parser.c (cp_parser_template_name): Look up deprecated attribute
in DECL_TEMPLATE_RESULT or its type's attributes.

* g++.dg/cpp1y/attr-deprecated-3.C: New test.

5 years agoi386: Fix wrong-code x86 issue with avx512{f,vl} fma PR93009
Jakub Jelinek [Wed, 22 Jan 2020 16:51:14 +0000 (17:51 +0100)] 
i386: Fix wrong-code x86 issue with avx512{f,vl} fma PR93009

As mentioned in the PR, the following testcase is miscompiled with avx512vl.
The reason is that the fma *_bcst_1 define_insns have two alternatives:
"=v,v" "0,v" "v,0" "m,m" and use the same
vfmadd213* %3<avx512bcst>, %2, %0<sd_mask_op4>
pattern.  If the first alternative is chosen, everything is ok, but if the
second alternative is chosen, %2 and %0 are the same register, so instead
of doing dest=dest*another+membcst we do dest=dest*dest+membcst.
Now, to fix this, either we'd need separate:
  "vfmadd213<ssemodesuffix>\t{%3<avx512bcst>, %2, %0<sd_mask_op4>|%0<sd_mask_op4>, %2, %3<avx512bcst>}
   vfmadd213<ssemodesuffix>\t{%3<avx512bcst>, %1, %0<sd_mask_op4>|%0<sd_mask_op4>, %1, %3<avx512bcst>}"
where for the second alternative, we'd just use %1 instead of %2, but
what I think is actually cleaner is just use a single alternative and
make the two multiplication operands commutative, which they really are.

2020-01-15  Jakub Jelinek  <jakub@redhat.com>

PR target/93009
* config/i386/sse.md
(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1,
*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1,
*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1,
*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Use
just a single alternative instead of two, make operands 1 and 2
commutative.

* gcc.target/i386/avx512vl-pr93009.c: New test.

5 years agore PR libgomp/93219 (unused return value in affinity-fmt.c)
Jakub Jelinek [Wed, 22 Jan 2020 16:50:14 +0000 (17:50 +0100)] 
re PR libgomp/93219 (unused return value in affinity-fmt.c)

PR libgomp/93219
* libgomp.h (gomp_print_string): Change return type from void to int.
* affinity-fmt.c (gomp_print_string): Likewise.  Return true if
not all characters have been written.

5 years agore PR inline-asm/93202 ([RISCV] ICE when using inline asm 'h' operand modifier)
Jakub Jelinek [Wed, 22 Jan 2020 16:49:38 +0000 (17:49 +0100)] 
re PR inline-asm/93202 ([RISCV] ICE when using inline asm 'h' operand modifier)

PR inline-asm/93202
* config/riscv/riscv.c (riscv_print_operand_reloc): Use
output_operand_lossage instead of gcc_unreachable.
* doc/md.texi (riscv f constraint): Fix typo.

* gcc.target/riscv/pr93202.c: New test.

5 years agore PR rtl-optimization/93088 (Compile time hog on gcc/testsuite/gcc.target/i386/pr563...
Jakub Jelinek [Wed, 22 Jan 2020 16:48:48 +0000 (17:48 +0100)] 
re PR rtl-optimization/93088 (Compile time hog on gcc/testsuite/gcc.target/i386/pr56348.c w/ -O3 -funroll-loops -fno-tree-dominator-opts -fno-tree-vrp)

PR rtl-optimization/93088
* loop-iv.c (find_single_def_src): Punt after looking through
128 reg copies for regs with single definitions.  Move definitions
to first uses.

* gcc.target/i386/pr93088.c: New test.

5 years agore PR ipa/93087 (Bogus `-Wsuggest-attribute=cold` on function already marked as ...
Jakub Jelinek [Wed, 22 Jan 2020 16:48:05 +0000 (17:48 +0100)] 
re PR ipa/93087 (Bogus `-Wsuggest-attribute=cold` on function already marked as `__attribute__((cold))`)

PR ipa/93087
* predict.c (compute_function_frequency): Don't call
warn_function_cold on functions that already have cold attribute.

* c-c++-common/cold-1.c: New test.

5 years agore PR libgomp/93065 (libgomp: destructor missing to delete goacc_cleanup_key)
Jakub Jelinek [Wed, 22 Jan 2020 16:42:45 +0000 (17:42 +0100)] 
re PR libgomp/93065 (libgomp: destructor missing to delete goacc_cleanup_key)

PR libgomp/93065
* oacc-init.c (goacc_runtime_deinitialize): New function.

5 years agore PR c++/92438 (Function declaration parsed incorrectly with `-std=c++1z`)
Jakub Jelinek [Wed, 22 Jan 2020 16:42:02 +0000 (17:42 +0100)] 
re PR c++/92438 (Function declaration parsed incorrectly with `-std=c++1z`)

PR c++/92438
* parser.c (cp_parser_constructor_declarator_p): If open paren
is followed by RID_ATTRIBUTE, skip over the attribute tokens and
try to parse type specifier.

* g++.dg/ext/attrib61.C: New test.

5 years agore PR c++/92992 (Side-effects dropped when decltype(nullptr) typed expression is...
Jakub Jelinek [Wed, 22 Jan 2020 16:39:55 +0000 (17:39 +0100)] 
re PR c++/92992 (Side-effects dropped when decltype(nullptr) typed expression is passed to ellipsis)

PR c++/92992
* call.c (convert_arg_to_ellipsis): For decltype(nullptr) arguments
that have side-effects use cp_build_compound_expr.

* g++.dg/cpp0x/nullptr45.C: New test.

5 years agoFix ICE with cast of division by zero (PR c/93348).
Joseph Myers [Wed, 22 Jan 2020 17:26:10 +0000 (17:26 +0000)] 
Fix ICE with cast of division by zero (PR c/93348).

Bug 93348 reports an ICE on certain cases of casts of expressions that
may appear only in unevaluated parts of integer constant expressions,
arising from the generation of nested C_MAYBE_CONST_EXPRs.  This patch
fixes it by adding a call to remove_c_maybe_const_expr in the
integer-operands case, as is done in other similar cases.

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

PR c/93348
gcc/c:
* c-typeck.c (build_c_cast): Call remove_c_maybe_const_expr on
argument with integer operands.

gcc/testsuite:
* gcc.c-torture/compile/pr93348-1.c: New test.

(cherry picked from commit ac68e287fc2e939ae6b45ba7ff04e493982b7f62)

5 years agoDaily bump.
GCC Administrator [Wed, 22 Jan 2020 00:18:31 +0000 (00:18 +0000)] 
Daily bump.

5 years agoBug 93234 - INQUIRE on pre-assigned files of ROUND and SIGN properties fails
Jerry DeLisle [Tue, 21 Jan 2020 23:35:42 +0000 (15:35 -0800)] 
Bug 93234 - INQUIRE on pre-assigned files of ROUND and SIGN properties fails

2020-01-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        Backport from mainline
PR libfortran/93234
* io/unit.c (set_internal_unit): Set round and sign flags
correctly.

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

5 years agoPR c++/91476 - anon-namespace reference temp clash between TUs.
Jason Merrill [Mon, 20 Jan 2020 19:09:03 +0000 (14:09 -0500)] 
PR c++/91476 - anon-namespace reference temp clash between TUs.

* call.c (make_temporary_var_for_ref_to_temp): Clear TREE_PUBLIC
if DECL is in the anonymous namespace.

5 years agoDaily bump.
GCC Administrator [Tue, 21 Jan 2020 00:18:28 +0000 (00:18 +0000)] 
Daily bump.

5 years agoUpdate GCC zh_TW.po.
Joseph Myers [Mon, 20 Jan 2020 18:57:25 +0000 (18:57 +0000)] 
Update GCC zh_TW.po.

* zh_TW.po: Update.

5 years ago[PATCH] PR Fortran/93263 Correct test case
Mark Eggleston [Mon, 20 Jan 2020 13:29:33 +0000 (13:29 +0000)] 
[PATCH] PR Fortran/93263 Correct test case

Should've have checked for the existance of a non static integer
using scan-tree-dump instead of scan-tree-dump-not. A cut and paste
error.

5 years agoPR middle-end/93246 - missing alias subsets
Richard Biener [Tue, 14 Jan 2020 07:43:32 +0000 (08:43 +0100)] 
PR middle-end/93246 - missing alias subsets

Starting with the introduction of TYPE_TYPELESS_STORAGE the situation
of having a alias-set zero aggregate field became more common which
prevents recording alias-sets of fields of said aggregate as subset
of the outer aggregate.  component_uses_parent_alias_set_from in the
past fended off some of the issues with that but the alias oracles
use of the alias set of the base of an access path never appropriately
handled it.

The following makes it so that alias-sets of fields of alias-set zero
aggregate fields are still recorded as subset of the container.

2020-01-14  Richard Biener  <rguenther@suse.de>

PR middle-end/93246
* alias.c (record_component_aliases): Take superset to record
into, recurse for alias-set zero fields.
(record_component_aliases): New oveerload wrapping around the above.

* g++.dg/torture/pr93246.C: New testcase.

5 years agoBackport f48c6014133c8989702458f9082e34ba6dd326d4
Martin Liska [Mon, 20 Jan 2020 11:11:20 +0000 (12:11 +0100)] 
Backport f48c6014133c8989702458f9082e34ba6dd326d4

Backport from mainline
2020-01-16  Martin Liska  <mliska@suse.cz>

* lto-partition.c (lto_balanced_map): Remember
best_noreorder_pos and then restore to it
when we revert.

5 years agoClean up references to Subversion in documentation sources.
Eric S. Raymond [Mon, 20 Jan 2020 02:10:52 +0000 (18:10 -0800)] 
Clean up references to Subversion in documentation sources.

Clean up references to SVN in in the GCC docs, redirecting to Git
documentation as appropriate.

Where references to "the source code repository" rather than a
specific VCS make sense, I have used them. You might, after
all, change VCSes again someday.

I have not modified either generated HTML files nor maintainer scripts.
These changes should be complete with repect to the documentation tree.

2020-01-19  Eric S. Raymond <esr@thyrsus.com>
    Sandra Loosemore  <sandra@codesourcery.com>

Partial backport from mainline:

2020-01-19  Eric S. Raymond <esr@thyrsus.com>

gcc/
* doc/contribute.texi: Update for SVN -> Git transition.
* doc/install.texi: Likewise.

libstdc++-v3
* doc/xml/faq.xml: Update for SVN -> Git transition.
* doc/xml/manual/appendix_contributing.xml: Likewise.

5 years agoDaily bump.
GCC Administrator [Mon, 20 Jan 2020 00:18:27 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sun, 19 Jan 2020 00:18:27 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sat, 18 Jan 2020 00:18:36 +0000 (00:18 +0000)] 
Daily bump.

5 years agoPR c++/92531 - ICE with noexcept(lambda).
Jason Merrill [Fri, 17 Jan 2020 13:37:49 +0000 (08:37 -0500)] 
PR c++/92531 - ICE with noexcept(lambda).

This was failing because uses_template_parms didn't recognize LAMBDA_EXPR as
a kind of expression.  Instead of trying to enumerate all the different
varieties of expression and then aborting if what's left isn't
error_mark_node, let's handle error_mark_node and then assume anything else
is an expression.

* pt.c (uses_template_parms): Don't try to enumerate all the
expression cases.

5 years agoPR c++/93286 - ICE with __is_constructible and variadic template.
Jason Merrill [Thu, 16 Jan 2020 21:55:39 +0000 (16:55 -0500)] 
PR c++/93286 - ICE with __is_constructible and variadic template.

Here we had been recursing in tsubst_copy_and_build if type2 was a TREE_LIST
because that function knew how to deal with pack expansions, and tsubst
didn't.  But tsubst_copy_and_build expects to be dealing with expressions,
so we crash when trying to convert_from_reference a type.

* pt.c (tsubst) [TREE_LIST]: Handle pack expansion.
(tsubst_copy_and_build) [TRAIT_EXPR]: Always use tsubst for type2.

5 years agoFortran: PR93263 -fno-automatic and RECURSIVE
Mark Eggleston [Fri, 17 Jan 2020 09:44:23 +0000 (09:44 +0000)] 
Fortran: PR93263 -fno-automatic and RECURSIVE

The use of -fno-automatic should not affect the save attribute of a
recursive procedure. The first test case checks unsaved variables
and the second checks saved variables.

5 years agoDaily bump.
GCC Administrator [Fri, 17 Jan 2020 00:18:53 +0000 (00:18 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Thu, 16 Jan 2020 00:18:44 +0000 (00:18 +0000)] 
Daily bump.

5 years agoFix setting of DECL_CONTEXT in pushdecl (PR c/93072).
Joseph Myers [Wed, 15 Jan 2020 20:52:45 +0000 (20:52 +0000)] 
Fix setting of DECL_CONTEXT in pushdecl (PR c/93072).

Bug 93072 is a case where the C front end (a) wrongly interprets an
inline declaration at block scope as indicating that DECL_CONTEXT
should be set for an inline function and (b) this results in an ICE.
This is a regression resulting from a previous fix of mine for other
bugs involving such declarations being wrongly interpreted elsewhere
as nested function declarations.  The fix is similar to the previous
fix: use TREE_PUBLIC instead of DECL_EXTERNAL in another place as the
relevant test to determine whether to set DECL_CONTEXT.  (When a
variable reaches the code in question in pushdecl, the two are
equivalent.)

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

PR c/93072
gcc/c:
* c-decl.c (pushdecl): Use TREE_PUBLIC, not DECL_EXTERNAL, to
determine whether to set DECL_CONTEXT.

gcc/testsuite:
* gcc.dg/inline-42.c, gcc.dg/inline-43.c: New tests.

(cherry picked from commit e2346a33b05871fc065815d4cfd531dfa0195507)

5 years agoPR target/93254 - -msse generates sse2 instructions
Uros Bizjak [Wed, 15 Jan 2020 19:22:39 +0000 (20:22 +0100)] 
PR target/93254 - -msse generates sse2 instructions

PR target/93254
* config/i386/i386.md (*movsf_internal): Require SSE2 ISA for
alternatives 9 and 10.  Do not require SSE2 ISA for alternatives
14 and 15.

5 years agoDaily bump.
GCC Administrator [Wed, 15 Jan 2020 00:18:42 +0000 (00:18 +0000)] 
Daily bump.

5 years agoIPA: Avoid segfault in devirtualization_time_bonus (PR 93223)
Martin Jambor [Tue, 14 Jan 2020 18:05:56 +0000 (19:05 +0100)] 
IPA: Avoid segfault in devirtualization_time_bonus (PR 93223)

2020-01-14  Martin Jambor  <mjambor@suse.cz>

PR ipa/93223
* ipa-cp.c (devirtualization_time_bonus): Check whether isummary is
NULL.

testsuite/
* g++.dg/ipa/pr93223.C: New test.

5 years agoDaily bump.
GCC Administrator [Tue, 14 Jan 2020 00:18:50 +0000 (00:18 +0000)] 
Daily bump.

5 years agoFix handling of overflow in C casts in integer constant expressions (PR c/93241).
Joseph Myers [Tue, 14 Jan 2020 00:13:21 +0000 (00:13 +0000)] 
Fix handling of overflow in C casts in integer constant expressions (PR c/93241).

Bug 93241 reports a case where certain C expressions involving casts,
that would not be valid in an evaluated part of an integer constant
expression (because of e.g. involving integer overflow), are wrongly
rejected in an unevaluated part of an integer constant expression even
though all the operands and operations are ones that are valid in that
context.  This is a rejects-valid regression in GCC 4.5 and later
relative to 4.4 (for some testcases; the one in the bug uses
_Static_assert which isn't supported in those older releases).

The rule in the C front end is that an expression with those
properties (valid in an unevaluated part of an integer constant
expression but not an evaluated part) must be represented either as an
INTEGER_CST with TREE_OVERFLOW set or as a C_MAYBE_CONST_EXPR with
C_MAYBE_CONST_EXPR_INT_OPERANDS set.  This patch fixes build_c_cast to
check for that case and call note_integer_operands as needed.

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

PR c/93241
gcc/c:
* c-typeck.c (build_c_cast): Check for expressions with integer
operands that can occur in an unevaluated part of an integer
constant expression and call note_integer_operands as needed.

gcc/testsuite:
* gcc.dg/c11-static-assert-10.c, gcc.dg/c99-const-expr-15.c: New
tests.

(cherry picked from commit 3d77686d2eddf76d3498169d0ca5653db45a8662)

5 years agoBuild filesystem library with large file support
Jonathan Wakely [Thu, 9 Jan 2020 13:38:43 +0000 (13:38 +0000)] 
Build filesystem library with large file support

Enable AC_SYS_LARGEFILE to set the macros needed for large file APIs to
be used by default. We do not want to define those macros in the
public headers that users include. The values of the macros are copied
to a separate file that is only included by the filesystem sources
during the build, and then the macros in <bits/c++config.h> are renamed
so that they don't have any effect in user code including our headers.

Also use larger type for result of filesystem::file_size to avoid
truncation of large values on 32-bit systems (PR 91947).

Backport from mainlne
2019-10-04  Jonathan Wakely  <jwakely@redhat.com>

PR libstdc++/81091
PR libstdc++/91947
* configure.ac: Use AC_SYS_LARGEFILE to enable 64-bit file APIs.
* config.h.in: Regenerate:
* configure: Regenerate:
* include/Makefile.am (${host_builddir}/largefile-config.h): New
target to generate config header for filesystem library.
(${host_builddir}/c++config.h): Rename macros for large file support.
* include/Makefile.in: Regenerate.
* src/c++17/fs_dir.cc: Include new config header.
* src/c++17/fs_ops.cc: Likewise.
(filesystem::file_size): Use uintmax_t for size.
* src/filesystem/dir.cc: Include new config header.
* src/filesystem/ops.cc: Likewise.
(experimental::filesystem::file_size): Use uintmax_t for size.

5 years agoFix libdecnumber handling of non-canonical BID significands (PR middle-end/91226).
Joseph Myers [Mon, 13 Jan 2020 18:45:04 +0000 (18:45 +0000)] 
Fix libdecnumber handling of non-canonical BID significands (PR middle-end/91226).

As reported in bug 91226, the libdecnumber code used on the host to
interpret DFP values in the BID encoding fails, for _Decimal64 and
_Decimal128, to check for the case where a significand is too large
and so specified in IEEE 754 to be a non-canonical encoding of the
zero significand.  This patch adds the required handling of that case,
together with tests both using -O2 (testing this host code) and -O0
(testing libgcc code, which already worked before the patch); the
tests also cover _Decimal32, which already had the required check.

In the _Decimal128 case, where the code previously completely ignored
the case where the first four bits of the combination field are 1100,
1101 or 1110, the logic for determining the correct quantum exponent
in that case is also newly added by this patch, so tests are added for
that as well (again, libgcc already handled it correctly when the
conversion was done at runtime rather than at compile time).

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

PR middle-end/91226
libdecnumber:
* bid/bid2dpd_dpd2bid.c (_bid_to_dpd64): Handle non-canonical
significands.
(_bid_to_dpd128): Likewise.  Check for case where combination
field starts 1100, 1101 or 1110.

gcc/testsuite:
* gcc.dg/dfp/bid-non-canonical-d128-1.c,
gcc.dg/dfp/bid-non-canonical-d128-2.c,
gcc.dg/dfp/bid-non-canonical-d128-3.c,
gcc.dg/dfp/bid-non-canonical-d128-4.c,
gcc.dg/dfp/bid-non-canonical-d32-1.c,
gcc.dg/dfp/bid-non-canonical-d32-2.c,
gcc.dg/dfp/bid-non-canonical-d64-1.c,
gcc.dg/dfp/bid-non-canonical-d64-2.c: New tests.

(cherry picked from commit 0fad54f0a88160e81c3150b63c91fd9809665474)

5 years agolibstdc++: Fix documentation claiming to refer to mainline
Jonathan Wakely [Mon, 13 Jan 2020 16:25:01 +0000 (16:25 +0000)] 
libstdc++: Fix documentation claiming to refer to mainline

* doc/xml/manual/status_cxx1998.xml: Replace incorrect statement
about documenting mainline.
* doc/xml/manual/status_cxx2011.xml: Likewise.
* doc/xml/manual/status_cxx2014.xml: Likewise.
* doc/xml/manual/status_cxx2017.xml: Likewise.
* doc/xml/manual/status_cxx2020.xml: Likewise.
* doc/xml/manual/status_cxxtr1.xml: Likewise.
* doc/xml/manual/status_cxxtr24733.xml: Likewise.
* doc/html/*: Regenerate.

5 years agoUpdate gcc_release to mainline version.
Joseph Myers [Mon, 13 Jan 2020 15:58:45 +0000 (15:58 +0000)] 
Update gcc_release to mainline version.

Will be needed for building subsequent releases on this branch from
git.

Backport:

2020-01-13  Joseph Myers  <joseph@codesourcery.com>

* gcc_release: Use git instead of SVN.

2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>

* gcc_release: Use https for gcc.gnu.org.

5 years agoDaily bump.
GCC Administrator [Mon, 13 Jan 2020 12:38:15 +0000 (12:38 +0000)] 
Daily bump.

5 years agoDaily bump.
GCC Administrator [Sat, 11 Jan 2020 00:16:10 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r280154

5 years agoIPA-CP: Remove bogus static keyword (PR 92971)
Martin Jambor [Fri, 10 Jan 2020 19:30:56 +0000 (20:30 +0100)] 
IPA-CP: Remove bogus static keyword (PR 92971)

2020-01-10  Martin Jambor  <mjambor@suse.cz>

Backport from mainline
2019-12-17  Martin Jambor  <mjambor@suse.cz>

        PR ipa/92971
        * Ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix
          definition of values, release memory on exit.

        testsuite/
        * gcc.dg/ipa/ipcp-agg-12.c: New test.

From-SVN: r280131

5 years agobackport: arm: Fix rmprofile multilibs when architecture includes +mp or +sec (PR...
Przemyslaw Wirkus [Fri, 10 Jan 2020 16:50:15 +0000 (16:50 +0000)] 
backport: arm: Fix rmprofile multilibs when architecture includes +mp or +sec (PR target/93188)

When only the rmprofile multilibs are built, compiling for armv7-a
should select the generic v7 multilibs.  This used to work before +sec
and +mp were added to the architecture options but it was broken by
that update.  This patch fixes those variants and adds some tests to
ensure that they remain fixed

gcc/ChangeLog:
2020-01-10  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

Backport from trunk
PR target/93188
* config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match
armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants
when only building rm-profile multilibs.

gcc/testsuite/ChangeLog:
2020-01-10  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

Backport from trunk
* gcc.target/arm/multilib.exp: Add new tests for rm-profile only.

From-SVN: r280123

5 years agobackport: arm: fix v[78]-r multilibs when configured with --with-multlib-list=aprofile
Przemyslaw Wirkus [Fri, 10 Jan 2020 16:46:42 +0000 (16:46 +0000)] 
backport: arm: fix v[78]-r multilibs when configured with --with-multlib-list=aprofile

When gcc for Arm is configured with --with-multilib-list=aprofile a
misplaced endif directive in the makefile was causing the arm->thumb
mapping for multilibs to be omitted from the reuse rules.  This
resulted in the default multilib being picked rather than the thumb2
opimized version.

2020-01-10  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

Backport from trunk
* config/arm/t-multilib: Use arm->thumb multilib reuse rules
on a-profile.

From-SVN: r280122

5 years agoFortran] PR84135 fix merging dimension into codimension array spec
Tobias Burnus [Fri, 10 Jan 2020 14:37:29 +0000 (15:37 +0100)] 
Fortran] PR84135 fix merging dimension into codimension array spec

        Backported from mainline
        2020-01-09  Tobias Burnus  <tobias@codesourcery.com>

        PR fortran/84135
        * array.c (gfc_set_array_spec): Fix shifting of codimensions
        when adding a dimension.
        * decl.c (merge_array_spec): Ditto. Fix using correct codimensions.

        Backported from mainline
        2020-01-09  Tobias Burnus  <tobias@codesourcery.com>

        PR fortran/84135
        * gfortran.dg/coarray/codimension_3.f90: New.

From-SVN: r280110

5 years agoDaily bump.
GCC Administrator [Fri, 10 Jan 2020 00:16:10 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r280095

5 years agolibstdc++: Define memory resource key functions non-inline (PR93208)
Jonathan Wakely [Thu, 9 Jan 2020 13:18:37 +0000 (13:18 +0000)] 
libstdc++: Define memory resource key functions non-inline (PR93208)

This prevents the vtables and RTTI from being emitted in every object
file that uses memory_resource and monotonic_buffer_resource.

Objects compiled by GCC 9.1 or 9.2 will contain inline definitions of
the destructors, vtable and RTTI, but this is harmless. The inline
definitions have identical effects to the ones that are now defined in
libstdc++.so so it doesn't matter if the inline ones are used instead of
calling the symbols exported from the runtime library.

PR libstdc++/93208
* config/abi/pre/gnu.ver: Add new exports.
* include/std/memory_resource (memory_resource::~memory_resource()):
Do not define inline.
(monotonic_buffer_resource::~monotonic_buffer_resource()): Likewise.
* src/c++17/memory_resource.cc (memory_resource::~memory_resource()):
Define.
(monotonic_buffer_resource::~monotonic_buffer_resource()): Define.
* testsuite/20_util/monotonic_buffer_resource/93208.cc: New test.

From-SVN: r280045

5 years agoBackport r279306
Martin Liska [Thu, 9 Jan 2020 10:33:28 +0000 (11:33 +0100)] 
Backport r279306

2020-01-09  Martin Liska  <mliska@suse.cz>

Backport from mainline
2019-12-12  Jan Hubicka  <hubicka@ucw.cz>

* ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering
of execution of function call parameters.

From-SVN: r280037

5 years agoDaily bump.
GCC Administrator [Thu, 9 Jan 2020 00:16:12 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r280023

5 years agolibstdc++: Fix error handling in filesystem::remove_all (PR93201)
Jonathan Wakely [Wed, 8 Jan 2020 21:48:23 +0000 (21:48 +0000)] 
libstdc++: Fix error handling in filesystem::remove_all (PR93201)

When recursing into a directory, any errors that occur while removing a
directory entry are ignored, because the subsequent increment of the
directory iterator clears the error_code object.

This fixes that bug by checking the result of each recursive operation
before incrementing. This is a change in observable behaviour, because
previously other directory entries would still be removed even if one
(or more) couldn't be removed due to errors. Now the operation stops on
the first error, which is what the code intended to do all along. The
standard doesn't specify what happens in this case (because the order
that the entries are processed is unspecified anyway).

PR libstdc++/93201
* src/c++17/fs_ops.cc (remove_all(const path&, error_code&)): Check
result of recursive call before incrementing iterator.
* src/filesystem/ops.cc (remove_all(const path&, error_code&)):
Likewise.
* testsuite/27_io/filesystem/operations/remove_all.cc: Check errors
are reported correctly.
* testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.

From-SVN: r280020

5 years agobackport: Add -nodevicespecs option for avr.
Georg-Johann Lay [Wed, 8 Jan 2020 09:46:07 +0000 (09:46 +0000)] 
backport: Add -nodevicespecs option for avr.

Backport from 2020-01-08 trunk r279995.

Add -nodevicespecs option for avr.

PR target/93182
* config/avr/avr.opt (-nodevicespecs): New driver option.
* config/avr/driver-avr.c (avr_devicespecs_file): Only issue
"-specs=device-specs/..." if that option is not set.
* doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.

From-SVN: r279996

5 years agocompiler: fix loopdepth tracking in array slicing expression in escape analysis
Ian Lance Taylor [Wed, 8 Jan 2020 00:38:34 +0000 (00:38 +0000)] 
compiler: fix loopdepth tracking in array slicing expression in escape analysis

    In the gc compiler, for slicing an array, its AST has an implicit
    address operation node. There isn't such node in the gofrontend
    AST. During the escape analysis, we create a fake node to mimic
    the gc compiler's behavior. For the fake node, the loopdepth was
    not tracked correctly, causing miscompilation. Since this is an
    address operation, do the same thing as we do for the address
    operator.

    Fixes golang/go#36404.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/213643

From-SVN: r279985

5 years agoDaily bump.
GCC Administrator [Wed, 8 Jan 2020 00:16:15 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r279982

5 years ago[testsuite, Darwin] Fix failing darwin-version-1.c.
Iain Sandoe [Tue, 7 Jan 2020 21:37:36 +0000 (21:37 +0000)] 
[testsuite, Darwin] Fix failing darwin-version-1.c.

Recent platform linkers will no longer accept linking for a target
OS version less than 10.4. Recent SDKs no longer have the libgcc_s
shims used for 10.4 and 10.5. So we need to adjust tests that expect
these.

2020-01-07  Iain Sandoe  <iain@sandoe.co.uk>

Backport from mainline.
2020-01-05  Iain Sandoe  <iain@sandoe.co.uk>

* gcc.dg/darwin-version-1.c: Adjust test to use different
options for Darwin4-9 and Darwin10+.

From-SVN: r279975

5 years agoDaily bump.
GCC Administrator [Tue, 7 Jan 2020 00:16:09 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r279931

5 years agopa.md: Revert change to use ordered_comparison_operator instead of...
John David Anglin [Mon, 6 Jan 2020 23:52:55 +0000 (23:52 +0000)] 
pa.md: Revert change to use ordered_comparison_operator instead of...

* config/pa/pa.md: Revert change to use ordered_comparison_operator
instead of cmpib_comparison_operator in cmpib patterns.
* config/pa/predicates.md (cmpib_comparison_operator): Revert removal
of cmpib_comparison_operator.  Revise comment.

From-SVN: r279928

5 years agoDaily bump.
GCC Administrator [Mon, 6 Jan 2020 00:16:11 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r279891

5 years agoDaily bump.
GCC Administrator [Sun, 5 Jan 2020 00:16:10 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r279882

5 years agoDaily bump.
GCC Administrator [Sat, 4 Jan 2020 00:16:14 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r279875

5 years agoDaily bump.
GCC Administrator [Fri, 3 Jan 2020 00:16:28 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r279851

5 years agore PR c/90677 (gcc-9.1.0 fails to build __gcc_diag__ souce: error: 'cgraph_node'...
Jakub Jelinek [Thu, 2 Jan 2020 17:36:50 +0000 (18:36 +0100)] 
re PR c/90677 (gcc-9.1.0 fails to build __gcc_diag__ souce: error: 'cgraph_node' is not defined as a type)

PR c/90677
* cp-objcp-common.c (identifier_global_tag): Return NULL_TREE if name
has not been found, rather than error_mark_node.

* c-c++-common/pr90677-2.c: New test.

From-SVN: r279841

5 years agoDaily bump.
GCC Administrator [Thu, 2 Jan 2020 00:16:33 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r279826

5 years agore PR target/67834 (Local references inside comdat groups)
John David Anglin [Wed, 1 Jan 2020 23:00:58 +0000 (23:00 +0000)] 
re PR target/67834 (Local references inside comdat groups)

PR target/67834
* config/pa/pa.c (pa_elf_select_rtx_section): New.  Put references to
COMDAT group function labels in .data.rel.ro.local section.
* config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define.

From-SVN: r279824