]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
6 years ago cmd/go: restore passing D to ar
ian [Fri, 1 Mar 2019 22:22:18 +0000 (22:22 +0000)] 
cmd/go: restore passing D to ar

    This restores part of https://golang.org/cl/45695 that was
    accidentally lost in https://golang.org/cl/158019 (the update to
    Go1.12beta2).

    Reviewed-on: https://go-review.googlesource.com/c/164737

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

6 years ago PR middle-end/89497
jakub [Fri, 1 Mar 2019 19:06:36 +0000 (19:06 +0000)] 
PR middle-end/89497
* g++.dg/tree-prof/devirt.C: Adjust also the ilp32
scan-tree-dump-times from dom3 to tracer pass.

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

6 years agors6000: Adapt testcases for -mdejagnu-cpu=
segher [Fri, 1 Mar 2019 18:04:31 +0000 (18:04 +0000)] 
rs6000: Adapt testcases for -mdejagnu-cpu=

This is the result of these two oneliners:
perl -ni -e 'print unless /dg-skip-if "do not override -mcpu"/' \
  $(find gcc/testsuite/gcc.target/powerpc/ -type f)
perl -pi -e 's/(dg-options.*)-mcpu=/\1-mdejagnu-cpu=/'  \
  $(find gcc/testsuite/gcc.target/powerpc/ -type f)

gcc/testsuite/
* gcc.target/powerpc/ throughout: Delete dg-skip-if "do not override
-mcpu".  Use -mdejagnu-cpu= in dg-options instead of -mcpu=.

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

6 years agors6000: Add -mdejagnu-cpu=
segher [Fri, 1 Mar 2019 17:44:15 +0000 (17:44 +0000)] 
rs6000: Add -mdejagnu-cpu=

This adds an option -mdejagnu-cpu=.  This option simply overrides what
is given in -mcpu=.  The reason for this is that with older versions
of DejaGnu the value given in the RUNTESTFLAGS will override the value
a testcase wants to have.

* config/rs6000/rs6000.c (rs6000_option_override_internal): If
rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
* config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.

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

6 years agohaifa-sched: handle fallthru edge to EXIT block (PR 85899)
amonakov [Fri, 1 Mar 2019 16:18:04 +0000 (16:18 +0000)] 
haifa-sched: handle fallthru edge to EXIT block (PR 85899)

PR rtl-optimization/85899
* haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
fallthru edges leading to the exit block.

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

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

6 years ago PR c++/89537 - missing location for error with non-static member fn.
mpolacek [Fri, 1 Mar 2019 15:57:46 +0000 (15:57 +0000)] 
PR c++/89537 - missing location for error with non-static member fn.
* call.c (resolve_args): Use EXPR_LOCATION.
* typeck.c (build_class_member_access_expr): Use input_location.

* g++.dg/diagnostic/member-fn-1.C: New test.

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

6 years ago PR c++/89532 - ICE with incomplete type in decltype.
mpolacek [Fri, 1 Mar 2019 15:55:56 +0000 (15:55 +0000)] 
PR c++/89532 - ICE with incomplete type in decltype.
* semantics.c (finish_compound_literal): Return error_mark_node
if digest_init_flags returns error_mark_node.

* g++.dg/cpp2a/nontype-class14.C: New test.

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

6 years ago runtime: call execname and getpagesize on Solaris
ian [Fri, 1 Mar 2019 14:21:24 +0000 (14:21 +0000)] 
runtime: call execname and getpagesize on Solaris

    Interpreting auxv as []uintptr is incorrect on 64-bit big-endian,
    as auxv alternates a 32-bit int with a 64-bit pointer.

    Patch from Rainer Orth.

    Reviewed-on: https://go-review.googlesource.com/c/164739

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

6 years ago Implement P1002R1, Try-catch blocks in constexpr functions
jakub [Fri, 1 Mar 2019 14:20:03 +0000 (14:20 +0000)] 
Implement P1002R1, Try-catch blocks in constexpr functions
PR c++/89513
* parser.c (cp_parser_ctor_initializer_opt_and_function_body):
Diagnose constexpr ctor or function with function-try-block with
pedwarn for c++17 and earlier.  Formatting fix.
(cp_parser_try_block): Use pedwarn instead of error and only for
c++17 and earlier when try block appears in constexpr function.
* constexpr.c (build_constexpr_constructor_member_initializers):
Handle TRY_BLOCK here instead of erroring on it.

* g++.dg/cpp2a/constexpr-try1.C: New test.
* g++.dg/cpp2a/constexpr-try2.C: New test.
* g++.dg/cpp2a/constexpr-try3.C: New test.
* g++.dg/cpp2a/constexpr-try4.C: New test.
* g++.dg/cpp2a/constexpr-try5.C: New test.
* g++.dg/cpp0x/constexpr-ctor10.C: Don't expect error for C++2a.

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

6 years agoFix test memory_resource to work without sized deallocation
redi [Fri, 1 Mar 2019 13:50:41 +0000 (13:50 +0000)] 
Fix test memory_resource to work without sized deallocation

The checking memory_resource in the testsuite assumes sized deallocation
is supported, which might not be true for other compilers.

* testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource)
[!__cpp_sized_deallocation]: Do not pass size to operator delete.

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

6 years agoC++2a Utility functions to implement uses-allocator construction (P0591R4)
redi [Fri, 1 Mar 2019 13:50:36 +0000 (13:50 +0000)] 
C++2a Utility functions to implement uses-allocator construction (P0591R4)

* include/std/memory (uses_allocator_construction_args): New set of
overloaded functions.
(make_obj_using_allocator, uninitialized_construct_using_allocator):
New functions.
* include/std/memory_resource (polymorphic_allocator::construct)
[__cplusplus > 201703l]: Replace all overloads with a single function
using uses_allocator_construction_args.
* testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: New
test.
* testsuite/20_util/uses_allocator/make_obj.cc: New test.

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

6 years agoAArch64: Make every option in options.def one line
tnfchris [Fri, 1 Mar 2019 13:34:14 +0000 (13:34 +0000)] 
AArch64: Make every option in options.def one line

Due to config.gcc all the options need to be on one line because of the grep
lines which would select only the first line of the option.

This causes it not to select the right bits on options that are spread over
multiple lines when the --with-arch configure option is used.  The issue happens
silently and you just get a compiler with an incorrect set of default flags.

This solution just collapses everything back to one line as they were in GCC7.
Unfortunately this does make some lines quite long.

I do have an alternate patch which used the pre-processors to first flatten the
file in config.gcc.  I will send that one out for GCC 10.

gcc/ChangeLog:

PR target/89517
* config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.

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

6 years agoFix mask type choice in vectorizable_call (PR 89535)
rsandifo [Fri, 1 Mar 2019 13:05:40 +0000 (13:05 +0000)] 
Fix mask type choice in vectorizable_call (PR 89535)

This is another case in which we were failing to pass the expected
mask vector type to vect_get_vec_def_for_operand.

2019-02-28  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
PR tree-optimization/89535
* tree-vect-stmts.c (vectorizable_call): Record the vector types
for each operand.  Calculate the fallback choice for mask operands
and pass it to vect_get_vec_def_for_operand.

gcc/testsuite/
PR tree-optimization/89535
* gfortran.dg/vect/pr89535.f90: New test.

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

6 years ago2019-03-01 Richard Biener <rguenther@suse.de>
rguenth [Fri, 1 Mar 2019 12:52:19 +0000 (12:52 +0000)] 
2019-03-01  Richard Biener  <rguenther@suse.de>

PR middle-end/89541
* tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
get virtual operands.
(get_expr_operands): Handle CONST_DECL like other decls.

* gfortran.dg/pr89451.f90: New testcase.

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

6 years agod/dmd: Merge dmd upstream ed71446aa
ibuclaw [Fri, 1 Mar 2019 10:21:54 +0000 (10:21 +0000)] 
d/dmd: Merge dmd upstream ed71446aa

Backports support for extern(C++, "namespace"), which makes the
core.stdcpp package compilable.

Added predefined condition for CppRuntime_Gcc unconditionally, as it is
unlikely that D code will be linking to anything other than libstdc++
when extern(C++) is used.

Reviewed-on: https://github.com/dlang/dmd/pull/9371

gcc/d/ChangeLog:

2019-03-01  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-builtins.cc (d_init_versions): Add CppRuntime_Gcc as predefined
version condition.

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

6 years ago PR middle-end/89503
jakub [Fri, 1 Mar 2019 09:26:40 +0000 (09:26 +0000)] 
PR middle-end/89503
* fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
on DECL_P and EXPR_P.

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

6 years ago2019-03-01 Richard Biener <rguenther@suse.de>
rguenth [Fri, 1 Mar 2019 09:21:30 +0000 (09:21 +0000)] 
2019-03-01  Richard Biener  <rguenther@suse.de>

PR middle-end/89497
* tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
argument, defaulted to zero.
* passes.c (execute_function_todo): Pass down SSA update flags
to cleanup_tree_cfg.
* tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
(cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
form if requested.
(cleanup_tree_cfg): Get and pass down SSA update flags.

* gcc.dg/tree-ssa/reassoc-43.c: Avoid false match in regex.
* g++.dg/tree-prof/devirt.C: Scan tracer dump for foldings
that happen now earlier.

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

6 years ago PR bootstrap/89539
jakub [Fri, 1 Mar 2019 08:10:19 +0000 (08:10 +0000)] 
PR bootstrap/89539
* dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
early_lto_debug argument.

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

6 years ago PR go/89406
ian [Fri, 1 Mar 2019 05:25:36 +0000 (05:25 +0000)] 
PR go/89406
* Makefile.am (GOTOOLS_TEST_TIMEOUT): Double.
* Makefile.in: Regenerate.

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

6 years ago cmd/go: add -O2 to invocation of gccgo
ian [Fri, 1 Mar 2019 01:23:09 +0000 (01:23 +0000)] 
cmd/go: add -O2 to invocation of gccgo

    When using the go tool with gccgo, this changes the default
    compilation to use -O2.  The -gccgoflags option can be used to
    override this default.  I think this change better corresponds to what
    people expect when using the go tool.

    Reviewed-on: https://go-review.googlesource.com/c/164378

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

6 years agocommit 66ac9466852d11e968f8fd2ad6ffc7386cee49e1
ian [Fri, 1 Mar 2019 01:03:54 +0000 (01:03 +0000)] 
commit 66ac9466852d11e968f8fd2ad6ffc7386cee49e1
    gotest: avoid using echo inside $()

    The handling of newlines is not portable between bash and ksh.

    Reviewed-on: https://go-review.googlesource.com/c/164597

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

6 years agoDaily bump.
gccadmin [Fri, 1 Mar 2019 00:16:34 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago * g++.dg/cpp1z/fold-lambda3.C: Add test for 88183.
jason [Fri, 1 Mar 2019 00:10:28 +0000 (00:10 +0000)] 
* g++.dg/cpp1z/fold-lambda3.C: Add test for 88183.

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

6 years ago PR c++/88183 - ICE with .* fold-expression.
jason [Fri, 1 Mar 2019 00:08:58 +0000 (00:08 +0000)] 
PR c++/88183 - ICE with .* fold-expression.

build_m_component_ref can't handle type-dependent operands, so let's use the
default case; tsubst_copy_and_build also uses build_x_binary_op for
substituting a DOTSTAR_EXPR.

* pt.c (fold_expression) [DOTSTAR_EXPR]: Remove special handling.

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

6 years ago PR c++/86969 - ICE with constexpr if and recursive generic lambdas.
jason [Fri, 1 Mar 2019 00:08:21 +0000 (00:08 +0000)] 
PR c++/86969 - ICE with constexpr if and recursive generic lambdas.

* class.c, lambda.c, pt.c: Revert earlier change.
* lambda.c (add_capture): Don't special-case capture of dependent
VLA.

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

6 years ago * name-lookup.c (print_binding_level): Print this_entity.
jason [Fri, 1 Mar 2019 00:07:29 +0000 (00:07 +0000)] 
* name-lookup.c (print_binding_level): Print this_entity.

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

6 years ago PR tree-optimization/89536
ebotcazou [Thu, 28 Feb 2019 23:03:01 +0000 (23:03 +0000)] 
PR tree-optimization/89536
* tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
only whether bit #0 of the value is 0 instead of the entire value.

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

6 years ago PR c++/87068 - missing diagnostic with fallthrough statement.
mpolacek [Thu, 28 Feb 2019 22:29:42 +0000 (22:29 +0000)] 
PR c++/87068 - missing diagnostic with fallthrough statement.
* gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
at the end of a seq, save its location to walk_stmt_info.
(expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
a switch.

* c-c++-common/Wimplicit-fallthrough-37.c: New test.

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

6 years ago[PR72741, PR89433] Repeated use of the Fortran OpenACC 'routine' directive
tschwinge [Thu, 28 Feb 2019 20:31:36 +0000 (20:31 +0000)] 
[PR72741, PR89433] Repeated use of the Fortran OpenACC 'routine' directive

gcc/fortran/
PR fortran/72741
PR fortran/89433
* openmp.c (gfc_match_oacc_routine): Handle repeated use of the
Fortran OpenACC 'routine' directive.
gcc/testsuite/
PR fortran/72741
PR fortran/89433
* gfortran.dg/goacc/routine-multiple-directives-1.f90: New file.
* gfortran.dg/goacc/routine-multiple-directives-2.f90: Likewise.

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

6 years ago[PR72741] For all Fortran OpenACC 'routine' directive variants check for multiple...
tschwinge [Thu, 28 Feb 2019 20:31:23 +0000 (20:31 +0000)] 
[PR72741] For all Fortran OpenACC 'routine' directive variants check for multiple clauses specifying the level of parallelism

gcc/fortran/
PR fortran/72741
* gfortran.h (enum oacc_routine_lop): Add OACC_ROUTINE_LOP_ERROR.
* openmp.c (gfc_oacc_routine_lop, gfc_match_oacc_routine): Use it.
* trans-decl.c (add_attributes_to_decl): Likewise.
gcc/testsuite/
PR fortran/72741
* gfortran.dg/goacc/routine-multiple-lop-clauses-1.f90: New file.

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

6 years ago[PR72741, PR89433] Accept intrinsic symbols in Fortran OpenACC 'routine' directives
tschwinge [Thu, 28 Feb 2019 20:31:01 +0000 (20:31 +0000)] 
[PR72741, PR89433] Accept intrinsic symbols in Fortran OpenACC 'routine' directives

gcc/fortran/
PR fortran/72741
PR fortran/89433
* openmp.c (gfc_match_oacc_routine): Accept intrinsic symbols.
gcc/testsuite/
PR fortran/72741
PR fortran/89433
* gfortran.dg/goacc/routine-6.f90: Update
* gfortran.dg/goacc/routine-intrinsic-1.f: New file.
* gfortran.dg/goacc/routine-intrinsic-2.f: Likewise.

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

6 years ago PR c++/88049 - ICE with undefined destructor and anon namespace.
jason [Thu, 28 Feb 2019 17:29:48 +0000 (17:29 +0000)] 
PR c++/88049 - ICE with undefined destructor and anon namespace.

A type in an anonymous namespace can never be merged with one from
another translation unit, so a member of such a type is always its own
prevailing decl.

* lto-symtab.c (lto_symtab_prevailing_virtual_decl): Return early
for a type in an anonymous namespace.

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

6 years ago PR lto/88585
hubicka [Thu, 28 Feb 2019 16:45:44 +0000 (16:45 +0000)] 
PR lto/88585
* tree.c (find_atomic_core_type): Move ahead in file.
(check_base_type): Correctly compare alignments of atomic types.

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

6 years agoi386: Identify Westmere from PCLMUL
hjl [Thu, 28 Feb 2019 14:24:52 +0000 (14:24 +0000)] 
i386: Identify Westmere from PCLMUL

Since AES has been removed from Westmere in GCC 9, we should identify
Westmere from PCLMUL, instead of AES.

PR target/89455
* config/i386/i386.c (get_builtin_code_for_version): Identify
Westmere from PCLMUL, instead of AES.

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

6 years ago PR c/89521
jakub [Thu, 28 Feb 2019 13:49:38 +0000 (13:49 +0000)] 
PR c/89521
* gcc.dg/pr89521-1.c: New test.
* gcc.dg/pr89521-2.c: New test.

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

6 years agoFix test-case visibility (PR testsuite/89441).
marxin [Thu, 28 Feb 2019 13:17:09 +0000 (13:17 +0000)] 
Fix test-case visibility (PR testsuite/89441).

2019-02-28  John David Anglin  <danglin@gcc.gnu.org>

PR testsuite/89441
* g++.dg/ipa/pr89009.C: Update symbol visibility.

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

6 years ago PR target/89434
jakub [Thu, 28 Feb 2019 13:13:33 +0000 (13:13 +0000)] 
PR target/89434
* config/arm/arm.md (*subsi3_carryin_compare_const): Use
trunc_int_for_mode (-INTVAL (...), SImode), just instead of
-UINTVAL (...).

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

6 years agoAArch64: Have empty HWCAPs string ignored during native feature detection
tnfchris [Thu, 28 Feb 2019 10:43:41 +0000 (10:43 +0000)] 
AArch64: Have empty HWCAPs string ignored during native feature detection

This patch makes the feature detection code for AArch64 GCC not add features
automatically when the feature had no hwcaps string to match against.

This means that -mcpu=native no longer adds feature flags such as +profile.
The behavior wasn't noticed before because at the time +profile was added a bug
was preventing any feature bits from being added by native detections.

The loop has also been changed as Jakub specified in order to avoid a memory
leak that was present in the existing code and to be slightly more efficient.

gcc/ChangeLog:

PR target/88530
* config/aarch64/aarch64-option-extensions.def: Document it.
* config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
if empty hwcaps.

gcc/testsuite/ChangeLog:

PR target/88530
* gcc.target/aarch64/options_set_10.c: New test.

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

6 years ago2019-02-28 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Thu, 28 Feb 2019 10:27:03 +0000 (10:27 +0000)] 
2019-02-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/89522
* g++.dg/cpp1y/lambda-generic-ice10.C: New.

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

6 years ago PR c/89525
jakub [Thu, 28 Feb 2019 07:17:49 +0000 (07:17 +0000)] 
PR c/89525
* c-typeck.c (convert_arguments): Call inform_declaration only if
the previous warning_at call returned true.

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

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

6 years ago PR c/89520
jakub [Thu, 28 Feb 2019 07:16:38 +0000 (07:16 +0000)] 
PR c/89520
* convert.c (convert_to_real_1, convert_to_integer_1): Punt for
builtins if they don't have a single scalar floating point argument.
Formatting fixes.

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

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

6 years ago libgo: fix go_export extraction on Darwin
ian [Thu, 28 Feb 2019 01:01:46 +0000 (01:01 +0000)] 
libgo: fix go_export extraction on Darwin

    On Darwin, the section name is prefixed with the segment name, __GNU_GO.

    Reviewed-on: https://go-review.googlesource.com/c/151097

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

6 years agoDaily bump.
gccadmin [Thu, 28 Feb 2019 00:16:16 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago PR c++/88857 - ICE with value-initialization of argument in template.
mpolacek [Thu, 28 Feb 2019 00:07:06 +0000 (00:07 +0000)] 
PR c++/88857 - ICE with value-initialization of argument in template.
* call.c (convert_like_real): Don't call build_value_init in template.

* g++.dg/cpp0x/initlist-value4.C: New test.

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

6 years ago PR go/89172
ian [Wed, 27 Feb 2019 22:35:10 +0000 (22:35 +0000)] 
PR go/89172
    internal/cpu, runtime, runtime/pprof: handle function descriptors

    When using PPC64 ELF ABI v1 a function address is not a PC, but is the
    address of a function descriptor.  The first field in the function
    descriptor is the actual PC (see
    http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html#FUNC-DES).
    The libbacktrace library knows about this, and libgo uses actual PC
    values consistently except for the helper function funcPC that appears
    in both runtime and runtime/pprof.

    This patch fixes funcPC by recording, in the internal/cpu package,
    whether function descriptors are being used.  We have to check for
    function descriptors using a C compiler check, because GCC can be
    configured using --with-abi to select the ELF ABI to use.

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

    Reviewed-on: https://go-review.googlesource.com/c/162978

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

6 years ago PR c++/86969 - ICE with constexpr if and recursive generic lambdas.
jason [Wed, 27 Feb 2019 21:54:25 +0000 (21:54 +0000)] 
PR c++/86969 - ICE with constexpr if and recursive generic lambdas.

Here, the problem was that extract_local_specs wasn't seeing that we use
'self' inside the lambda in the else of the inner constexpr if, because we
don't walk into lambda bodies and we didn't capture it in the lambda because
'self' is still dependent.  Marek recently changed process_outer_var_ref to
do more implicit capture in templates; this example shows that we should
always capture non-packs, so that we can continue to not walk into lambda
bodies.  We do walk into lambda bodies for pack expansions, so we can delay
deciding whether we're capturing a single element or the entire pack.

Immediately capturing a VLA means we need to create a dependent VLA capture
type, and not in the context of the lambda op(), since trying to look up the
instantiation of the op() while we're substituting into the capture list
would crash.  So I force TYPE_CONTEXT and the binding level out to the
enclosing function before pushtag, avoid adding a TAG_DEFN, and instead
force the type to be complete in tsubst_lambda_expr.

* semantics.c (process_outer_var_ref): Do capture dependent vars.
* class.c (finish_struct): Only add TAG_DEFN if T is in
current_function_decl.
* lambda.c (vla_capture_type): Force the capture type out into the
lambda's enclosing function.
(add_capture): Pass in the lambda.
* pt.c (tsubst_lambda_expr): complete_type a VLA capture type.

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

6 years ago2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Wed, 27 Feb 2019 20:14:55 +0000 (20:14 +0000)] 
2019-02-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR rtl-optimization/89490
        * varasm.c (get_block_for_section): Bail out for mergeable sections.
        (default_use_anchors_for_symbol_p, output_object_block): Assert the
        block section is not mergeable.

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

6 years ago PR c++/89511 - ICE with using-declaration and unscoped enumerator.
mpolacek [Wed, 27 Feb 2019 19:07:18 +0000 (19:07 +0000)] 
PR c++/89511 - ICE with using-declaration and unscoped enumerator.
* parser.c (cp_parser_using_declaration): For an unscoped enum
only use its context if it's not a function declaration.

* g++.dg/cpp0x/using-enum-3.C: New test.

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

6 years ago PR target/70341
jakub [Wed, 27 Feb 2019 18:11:26 +0000 (18:11 +0000)] 
PR target/70341
* config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.

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

6 years ago runtime: align first persistentalloc chunk as requested
ian [Wed, 27 Feb 2019 15:51:49 +0000 (15:51 +0000)] 
runtime: align first persistentalloc chunk as requested

    Backport of upstream https://golang.org/cl/163859.

    This fixes various failures on 32-bit SPARC.

    Patch from Eric Boctazou.

    Reviewed-on: https://go-review.googlesource.com/c/163860

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

6 years ago PR tree-optimization/89280
jakub [Wed, 27 Feb 2019 15:22:16 +0000 (15:22 +0000)] 
PR tree-optimization/89280
* gcc.dg/torture/pr57147-2.c (SetNaClSwitchExpectations): Add static
keyword.

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

6 years ago PR target/70341
jakub [Wed, 27 Feb 2019 14:50:35 +0000 (14:50 +0000)] 
PR target/70341
* config/arm/arm.md (arm_casesi_internal): New define_expand.  Rename
old define_insn to ...
(*arm_casesi_internal): ... this.  Add mode to LABEL_REFs.
* config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
Rename old define_insn to ...
(*thumb2_casesi_internal): ... this.  Add mode to LABEL_REFs.
(thumb2_casesi_internal_pic): New define_expand.  Rename old
define_insn to ...
(*thumb2_casesi_internal_pic): ... this.  Add mode to LABEL_REFs.

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

6 years ago2019-02-27 Richard Biener <rguenther@suse.de>
rguenth [Wed, 27 Feb 2019 14:04:18 +0000 (14:04 +0000)] 
2019-02-27  Richard Biener  <rguenther@suse.de>

PR debug/88878
* dwarf2out.c (use_debug_types): Disable when in_lto_p.

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

6 years ago2019-02-27 Richard Biener <rguenther@suse.de>
rguenth [Wed, 27 Feb 2019 13:24:40 +0000 (13:24 +0000)] 
2019-02-27  Richard Biener  <rguenther@suse.de>

* passes.c (should_skip_pass_p): Do not skip cgraph-edge
building.

* gcc.dg/gimplefe-36.c: New testcase.

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

6 years ago2019-02-27 Richard Biener <rguenther@suse.de>
rguenth [Wed, 27 Feb 2019 12:51:43 +0000 (12:51 +0000)] 
2019-02-27  Richard Biener  <rguenther@suse.de>

PR debug/88878
* dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
parameter, prefix section name with .gnu.debuglto_ if true.
(dwarf2out_finish): Pass false to output_comdat_type_unit.
(dwarf2out_early_finish): Pass true to output_comdat_type_unit.

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

6 years ago2019-02-27 Richard Biener <rguenther@suse.de>
rguenth [Wed, 27 Feb 2019 11:59:07 +0000 (11:59 +0000)] 
2019-02-27  Richard Biener  <rguenther@suse.de>

PR debug/89514
* dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
rather than on use_debug_types, doing what output_die does.
(value_format): Likewise.

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

6 years agoPR libstdc++/89466 avoid slow xsltproc command in configure
redi [Wed, 27 Feb 2019 11:25:44 +0000 (11:25 +0000)] 
PR libstdc++/89466 avoid slow xsltproc command in configure

Certain broken versions of xsltproc ignore the --nonet option and will
attempt to fetch the docbook stylesheet from the WWW when it isn't in
the local XML catalog.

This patch checks for the local stylesheet directory first, and doesn't
use xsltproc if no local stylesheets are found. Checking for the local
directory is done using xmlcatalog if available, only checking the
hardcoded list of directories if xmlcatalog fails. The right directory
for Suse is added to the hardcoded list.

This should avoid doing an xsltproc check that would need to download
the stylesheet, so no network connection is made even if a broken
xsltproc is present.

PR libstdc++/89466
* acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Reorder check for local
stylesheet directories before check for xsltproc. Try to use
xmlcatalog to find local stylesheet directory before trying hardcoded
paths. Add path used by suse to hardcoded paths. Adjust xsltproc
check to look for the same stylesheet as doc/Makefile.am uses. Don't
use xsltproc if xmlcatalog fails to find a local stylesheet.
* configure.ac: Check for xmlcatalog.
* Makefile.in: Regenerate.
* configure: Likewise.
* doc/Makefile.in: Likewise.
* include/Makefile.in: Likewise.
* libsupc++/Makefile.in: Likewise.
* po/Makefile.in: Likewise.
* python/Makefile.in: Likewise.
* src/Makefile.in: Likewise.
* src/c++11/Makefile.in: Likewise.
* src/c++17/Makefile.in: Likewise.
* src/c++98/Makefile.in: Likewise.
* src/filesystem/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.

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

6 years agoReplaced spaces with tab in Changelog, committed as obvious
alejandro [Wed, 27 Feb 2019 10:38:25 +0000 (10:38 +0000)] 
Replaced spaces with tab in Changelog, committed as obvious

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

6 years agoAdd myself to write after approval.
alejandro [Wed, 27 Feb 2019 10:23:54 +0000 (10:23 +0000)] 
Add myself to write after approval.

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

6 years ago[doc] Reword description of -Wno-absolute-value
jamborm [Wed, 27 Feb 2019 10:07:01 +0000 (10:07 +0000)] 
[doc] Reword description of -Wno-absolute-value

2019-02-27  Martin Jambor  <mjambor@suse.cz>
    Martin Sebor  <msebor@redhat.com>

* doc/invoke.texi (Warning Options): Reword description of
-Wno-absolute-value.

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

6 years ago/cp
paolo [Wed, 27 Feb 2019 10:02:23 +0000 (10:02 +0000)] 
/cp
2019-02-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/89488
* method.c (process_subob_fn): When maybe_instantiate_noexcept
returns false don't call merge_exception_specifiers.

/testsuite
2019-02-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/89488
* g++.dg/cpp0x/nsdmi15.C: New.

/cp
2019-02-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/88987
* parser.c (cp_parser_noexcept_specification_opt): Return NULL_TREE
for a non-constant parsed expression.

/testsuite
2019-02-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/88987
* g++.dg/cpp0x/pr88987.C: New.

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

6 years ago PR tree-optimization/89280
jakub [Wed, 27 Feb 2019 08:41:01 +0000 (08:41 +0000)] 
PR tree-optimization/89280
* tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
builtin_setjmp_setup_bb): New functions.
(cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
When visiting __builtin_setjmp_setup block, queue in special
setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
__builtin_setjmp_receiver.  Remove .ABNORMAL_DISPATCHER basic blocks
from visited after the loop if they don't have any visited successor
blocks.

* gcc.c-torture/compile/pr89280.c: New test.
* gcc.dg/torture/pr57147-2.c: Don't expect a setjmp after noreturn
function.  Skip the test for -O0.

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

6 years ago compiler: check duplicate numeric keys in map literals
ian [Wed, 27 Feb 2019 04:56:12 +0000 (04:56 +0000)] 
compiler: check duplicate numeric keys in map literals

    Updates golang/go#28104

    Reviewed-on: https://go-review.googlesource.com/c/162882

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

6 years ago compiler: check recursive inherited interface aliases
ian [Wed, 27 Feb 2019 01:41:25 +0000 (01:41 +0000)] 
compiler: check recursive inherited interface aliases

    Fixes golang/go#25302.

    Reviewed-on: https://go-review.googlesource.com/c/163298

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

6 years ago cmd/go: preserve CC for TestScript child processes
ian [Wed, 27 Feb 2019 01:11:20 +0000 (01:11 +0000)] 
cmd/go: preserve CC for TestScript child processes

    Reviewed-on: https://go-review.googlesource.com/c/158838

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

6 years agoDaily bump.
gccadmin [Wed, 27 Feb 2019 00:16:42 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago2018-02-26 Steve Ellcey <sellcey@marvell.com>
sje [Wed, 27 Feb 2019 00:02:53 +0000 (00:02 +0000)] 
2018-02-26  Steve Ellcey  <sellcey@marvell.com>

* gfortran.dg/simd-builtins-1.f90: Update for aarch64*-*-*.
* gfortran.dg/simd-builtins-2.f90: Ditto.
* gfortran.dg/simd-builtins-6.f90: Ditto.
* gfortran.dg/simd-builtins-8.f90: New test.
* gfortran.dg/simd-builtins-8.h: New header file.

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

6 years ago2018-02-26 Steve Ellcey <sellcey@marvell.com>
sje [Wed, 27 Feb 2019 00:00:56 +0000 (00:00 +0000)] 
2018-02-26  Steve Ellcey  <sellcey@marvell.com>

* config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
New function.
(TARGET_GET_MULTILIB_ABI_NAME): New macro.

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

6 years agoPR libstdc++/89477 constrain deduction guides for maps and sets
redi [Tue, 26 Feb 2019 23:12:44 +0000 (23:12 +0000)] 
PR libstdc++/89477 constrain deduction guides for maps and sets

The Compare, Hash, and Pred template parameters should be constrained in
the C++17 deduction guides for associative and unordered containers.

The deduction guides for stack, queue and priority_queue are already
constrained, but this patch makes them use the _RequireNotAllocator
helper instead of reproducing the logic each time.

PR libstdc++/89477
* include/bits/alloc_traits.h (_RequireNotAllocator): New helper for
container deduction guides.
* include/bits/hashtable.h (_RequireNotAllocatorOrIntegral): Likewise.
* include/bits/stl_map.h (map): Use _RequireNotAllocator to constrain
parameters in deduction guides.
* include/bits/stl_multimap.h (multimap): Likewise.
* include/bits/stl_multiset.h (multiset): Likewise.
* include/bits/stl_queue.h (queue, priority_queue): Likewise.
* include/bits/stl_set.h (set): Likewise.
* include/bits/stl_stack.h (stack): Likewise.
* include/bits/unordered_map.h (unordered_map, unordered_multimap):
use _RequireNotAllocator and _RequireNotAllocatorOrIntegral to
constrain parameters in deduction guides.
* include/bits/unordered_set.h (unordered_set, unordered_multiset):
Likewise.
* testsuite/23_containers/map/cons/deduction.cc: Test additional
deduction cases.
* testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
* testsuite/23_containers/set/cons/deduction.cc: Likewise.
* testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
* testsuite/23_containers/unordered_multimap/cons/deduction.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/cons/deduction.cc:
Likewise.
* testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.

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

6 years ago PR c++/89507
jakub [Tue, 26 Feb 2019 21:27:33 +0000 (21:27 +0000)] 
PR c++/89507
* tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
with types other than sizetype/ssizetype.

* g++.dg/other/new2.C: New test.

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

6 years ago * config/sparc/sparc-opts.h (enum processor_type): Rename to...
ebotcazou [Tue, 26 Feb 2019 21:08:22 +0000 (21:08 +0000)] 
* config/sparc/sparc-opts.h (enum processor_type): Rename to...
(enum sparc_processor_type): ...this.
(enum sparc_code_model_type): New enumeration type.
(enum sparc_memory_model_type): Tweak comments.
* config/sparc/sparc.opt (mcpu): Adjust to above renaming.
(mtune): Likewise.
(mcmodel): Use sparc_code_model enumeration and variable.
(sparc_code_model): New enumeration.
(mdebug): Add Undocumented marker.
* config/sparc/sparc.h (enum cmodel): Delete.
(sparc_cmodel): Likewise.
(TARGET_CM_MEDLOW): Adjust to above renaming.
(TARGET_CM_MEDMID): Likewise.
(TARGET_CM_MEDANY): Likewise.
(TARGET_CM_EMBMEDANY): Likewise.
* config/sparc/sparc.c (sparc_cmodel): Delete.
(sparc_option_override): Remove string/value mapping support for the
code model.  Move code and memory model support to after the handling
of target flags.  Do private machine setup last.
(sparc_emit_set_symbolic_const64): Use sparc_code_model.
(sparc_legitimize_reload_address): Likewise.
(sparc_output_mi_thunk): Likewise.
* config/sparc/sparc.md (cpu): Adjust comment to above renaming.

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

6 years ago PR tree-optimization/89500
jakub [Tue, 26 Feb 2019 20:36:29 +0000 (20:36 +0000)] 
PR tree-optimization/89500
* tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
(handle_builtin_strlen): Remove noncst_bound variable.  Always
optimize strnlen (x, 0) to 0.  Optimize strnlen (x, cst) to
cst if the first cst bytes starting at x are known to be non-zero,
even if the string is not zero terminated.  Don't try to modify
*si for strnlen.  Update strlen_to_stridx only for strlen or if
we can prove strnlen returns the same value as strlen would.

* gcc.dg/pr89500.c: New test.
* gcc.dg/Wstringop-overflow-10.c: New test.
* gcc.dg/strlenopt-60.c: New test.

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

6 years agoPR libstdc++/89416 fix alloc insertable trait for clang (again)
redi [Tue, 26 Feb 2019 20:34:46 +0000 (20:34 +0000)] 
PR libstdc++/89416 fix alloc insertable trait for clang (again)

PR libstdc++/89416
* include/bits/alloc_traits.h (__is_alloc_insertable_impl): Change
to class template and partial specialization using void_t.
(__is_copy_insertable, __is_move_insertable): Adjust base class.

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

6 years ago2019-02-26 Harald Anlauf <anlauf@gmx.de>
anlauf [Tue, 26 Feb 2019 20:03:08 +0000 (20:03 +0000)] 
2019-02-26  Harald Anlauf  <anlauf@gmx.de>

PR fortran/89492
* check.c (gfc_calculate_transfer_sizes): Handle cases where
storage size of elements of MOLD is 0.

PR fortran/89492
* gfortran.dg/pr89492.f90: New test.

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

6 years ago2019-02-26 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Tue, 26 Feb 2019 19:10:00 +0000 (19:10 +0000)] 
2019-02-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/89496
* trans-types.c (get_formal_from_actual_arglist): If
the actual arglist has no expression, the corresponding
formal arglist is an alternate return.

2019-02-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/89496
* gfortran.dg/altreturn_9_0.f90: New file.
* gfortran.dg/altreturn_9_1.f90: New file.

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

6 years ago * io/transfer.c (transfer_array_inner): Do not
uros [Tue, 26 Feb 2019 18:41:53 +0000 (18:41 +0000)] 
* io/transfer.c (transfer_array_inner): Do not
cast charlen to index_type.

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

6 years agoImprove memory statistics report readability.
marxin [Tue, 26 Feb 2019 17:27:52 +0000 (17:27 +0000)] 
Improve memory statistics report readability.

2019-02-26  Martin Liska  <mliska@suse.cz>

* alloc-pool.h (struct pool_usage): Remove extra
print_dash_line.
* bitmap.h (struct bitmap_usage): Likewise.
* ggc-common.c (struct ggc_usage): Likewise.
* mem-stats.h (struct mem_usage): Likewise.
(mem_alloc_description::dump): Print dash lines
here and repeat header at the end of a table report.
It's then more readable.
* tree-phinodes.c (phinodes_print_statistics): Make
horizontal alignment.
* tree-ssanames.c (ssanames_print_statistics): Likewise.
* vec.c (struct vec_usage): Remove extra print_dash_line.
* vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
2019-02-26  Martin Liska  <mliska@suse.cz>

* symtab.c (ht_dump_statistics): Make
horizontal alignment for statistics.

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

6 years agoRemove a legacy lto-symtab.c file.
marxin [Tue, 26 Feb 2019 17:27:36 +0000 (17:27 +0000)] 
Remove a legacy lto-symtab.c file.

2019-02-26  Martin Liska  <mliska@suse.cz>

* lto-symtab.c: Remove.

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

6 years ago * doc/extend.texi (__builtin_object_size):
uros [Tue, 26 Feb 2019 17:21:43 +0000 (17:21 +0000)] 
* doc/extend.texi (__builtin_object_size):
Use @pxref instead of @xref inside parenthesis.
(__builtin_has_attribute): Add missing comma after @xref.
(__builtin_object_size): Ditto.
* doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
* fortran/invoke.texi (-ffpe-trap): Use @var for every item
in the list.

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

6 years ago PR rtl-optimization/87761
law [Tue, 26 Feb 2019 17:08:06 +0000 (17:08 +0000)] 
PR rtl-optimization/87761
* regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
detect obviously dead insns and delete them.

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

6 years ago[libbacktrace] Fix btest-lto for older gcc
vries [Tue, 26 Feb 2019 16:09:40 +0000 (16:09 +0000)] 
[libbacktrace] Fix btest-lto for older gcc

With gcc 4.8.5, btest_lto ends up with a privatized name for the variable with
name 'global':
...
$ nm btest_lto | grep ' d ' | grep global
0000000000617150 d global.2530
...
which makes test5 fail:
...
    test5: unexpected syminfo name got global.2530 expected global
...

Fix this failure by accepting this type of name as a valid name in btest_lto.

2019-02-26  Tom de Vries  <tdevries@suse.de>

* btest.c (test5): Allow global.* as minimal symbol name for global.

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

6 years ago libgo: update to Go 1.12 release
ian [Tue, 26 Feb 2019 15:38:12 +0000 (15:38 +0000)] 
libgo: update to Go 1.12 release

    Reviewed-on: https://go-review.googlesource.com/c/163742

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

6 years ago PR go/86535
ian [Tue, 26 Feb 2019 14:46:56 +0000 (14:46 +0000)] 
PR go/86535
    runtime: always declare nanotime in Go

    For libgo it's always defined in C.

    Updates https://gcc.gnu.org/PR86535

    Reviewed-on: https://go-review.googlesource.com/c/163743

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

6 years ago PR c++/89481
jakub [Tue, 26 Feb 2019 14:37:39 +0000 (14:37 +0000)] 
PR c++/89481
* constexpr.c (cxx_eval_store_expression): When changing active union
member, set no_zero_init.

* g++.dg/cpp1y/constexpr-89481.C: New test.

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

6 years ago2019-02-26 Richard Biener <rguenther@suse.de>
rguenth [Tue, 26 Feb 2019 14:09:19 +0000 (14:09 +0000)] 
2019-02-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/89505
* tree-ssa-structalias.c (compute_dependence_clique): Make sure
to handle restrict pointed-to vars with multiple subvars
correctly.

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

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

6 years ago2019-02-26 Richard Biener <rguenther@suse.de>
rguenth [Tue, 26 Feb 2019 11:03:45 +0000 (11:03 +0000)] 
2019-02-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/89489
* tree-parloops.c (create_loop_fn): Copy over last_clique.

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

6 years ago * gnat.dg/opt77.adb: New test.
ebotcazou [Tue, 26 Feb 2019 10:55:16 +0000 (10:55 +0000)] 
* gnat.dg/opt77.adb: New test.
* gnat.dg/opt77_pkg.ad[sb]: New helper.

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

6 years ago PR fortran/43210
jakub [Tue, 26 Feb 2019 10:36:05 +0000 (10:36 +0000)] 
PR fortran/43210
* trans-array.c (gfc_conv_array_initializer): Use RANGE_EXPR instead
of duplicating the initializer possibly many times.

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

6 years ago PR target/89474
jakub [Tue, 26 Feb 2019 10:08:29 +0000 (10:08 +0000)] 
PR target/89474
* config/i386/i386.c (remove_partial_avx_dependency): Call
df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
after changing possibly many instructions to use that pseudo.  Fix up
insertion of v4sf_const0 setter at the start of bb.

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

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

6 years ago[libbacktrace] Require dwz for b3test_dwz_buildid
vries [Tue, 26 Feb 2019 07:54:57 +0000 (07:54 +0000)] 
[libbacktrace] Require dwz for b3test_dwz_buildid

If dwz is not available, then the libbacktrace test b3test_dwz_buildid fails
like this:
...
gmake[4]: *** No rule to make target 'b3test_dwz_buildid'
...

Fix this by guarding the test with HAVE_DWZ.

Tested on x86_64 with and without dwz installed.

2019-02-26  Tom de Vries  <tdevries@suse.de>

* Makefile.am (TESTS): Only add b3test_dwz_buildid if HAVE_DWZ.
* Makefile.in: Regenerate.

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

6 years ago2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
sandra [Tue, 26 Feb 2019 02:33:26 +0000 (02:33 +0000)] 
2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>

PR c/80409

gcc/
* doc/extend.texi (Variadic Pointer Args): New section.

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

6 years ago libgo: update to Go1.12rc1
ian [Tue, 26 Feb 2019 01:00:39 +0000 (01:00 +0000)] 
libgo: update to Go1.12rc1

    Reviewed-on: https://go-review.googlesource.com/c/162881

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

6 years agoDaily bump.
gccadmin [Tue, 26 Feb 2019 00:16:21 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago PR c/89495
jakub [Mon, 25 Feb 2019 23:43:51 +0000 (23:43 +0000)] 
PR c/89495
* c-format.c (maybe_read_dollar_number): Compute nargnum in
HOST_WIDE_INT type to avoid overflows and change overflow_flag
checking.

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

6 years ago PR c/77754
jakub [Mon, 25 Feb 2019 22:58:45 +0000 (22:58 +0000)] 
PR c/77754
* gcc.c-torture/compile/pr77754-1.c: New test.
* gcc.c-torture/compile/pr77754-2.c: New test.
* gcc.c-torture/compile/pr77754-3.c: New test.
* gcc.c-torture/compile/pr77754-4.c: New test.
* gcc.c-torture/compile/pr77754-5.c: New test.
* gcc.c-torture/compile/pr77754-6.c: New test.

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

6 years ago2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
sandra [Mon, 25 Feb 2019 20:38:42 +0000 (20:38 +0000)] 
2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
    Martin Sebor  <msebor@gmail.com>

gcc/
* c-family/c.opt (Wmissing-attributes): Clean up doc string.
* common.opt (Wattribute-alias): Likewise.
* doc/invoke.texi (Option Summary): List general form of
-Wattribute-alias=.  List positive form of -Wmissing-attributes.
(-Wmissing-attributes): Invert entry, rewrite and correct default.
Add cross-references.
(-Wattribute-alias): Rewrite and correct default.  Mention
considered attributes (same as for -Wmissing-attributes).

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

6 years ago[rs6000] PR89338, PR89339: Fix compat vector intrinsics for BE and 32-bit
pc [Mon, 25 Feb 2019 19:36:05 +0000 (19:36 +0000)] 
[rs6000] PR89338, PR89339: Fix compat vector intrinsics for BE and 32-bit

Test FAILS: sse2-cvtpd2dq-1, sse2-cvtpd2ps, sse2-cvttpd2dq on powerpc64
(big-endian).

_mm_cvtpd_epi32, _mm_cvtpd_ps, _mm_cvttpd_epi32: Type conversion from
vector doubleword type to vector word type leaves the results in even
lanes in big endian mode.

Test FAILS: sse-cvtss2si-1, sse-cvtss2si-2, sse-movmskb-1 on powerpc
(32-bit big-endian).

Incorrect type for interpreting the result from mfvsrd instruction leads
to incorrect results.  Also, mfvsrd instruction only works as expected in
64-bit mode or for 32-bit quantities in 32-bit mode.  A more general,
if slower, solution is needed for 32-bit mode.

2019-02-25  Paul A. Clarke  <pc@us.ibm.com>

[gcc]

* config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
(_mm_cvtpd_ps): Likewise.
(_mm_cvttpd_epi32): Likewise.

PR target/89338
* config/rs6000/xmmintrin.h (_mm_cvtss_f32):  Fix type mismatch.
(_mm_cvt_ss2si): Fix type mismatch and 32-bit.

PR target/89339
* config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.

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

6 years ago * fr.po: Update.
jsm28 [Mon, 25 Feb 2019 18:48:48 +0000 (18:48 +0000)] 
* fr.po: Update.

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

6 years agoAArch64: Fix command line options canonicalization version #2. (PR target/88530)
tnfchris [Mon, 25 Feb 2019 17:57:01 +0000 (17:57 +0000)] 
AArch64: Fix command line options canonicalization version #2. (PR target/88530)

Commandline options on AArch64 don't get canonicalized into the smallest
possible set before output to the assembler. This means that overlapping feature
sets are emitted with superfluous parts.

Normally this isn't an issue, but in the case of crypto we have retro-actively
split it into aes and sha2. We need to emit only +crypto to the assembler
so old assemblers continue to work.

Because of how -mcpu=native and -march=native work they end up enabling all
feature bits. Instead we need to get the smallest possible set, which would also
fix the problem with older the assemblers and the retro-active split.

The function that handles this is called quite often.  It is called for any
push/pop options or attribute that changes arch, cpu etc.  In order to not make
this search for the smallest set too expensive we sort the options based on the
number of features (bits) they enable.  This allows us to process the list
linearly instead of quadratically (Once we have enabled a feature, we know that
anything else that enables it can be ignored.  By sorting we'll get the biggest
groups first and thus the smallest combination of commandline flags).

The Option handling structures have been extended to have a boolean to indicate
whether the option is synthetic, with that I mean if the option flag itself
enables a new feature.

e.g. +crypto isn't an actual feature, it just enables other features, but others
like +rdma enable multiple dependent features but is itself also a feature.

There are two ways to solve this.

1) Either have the options that are feature bits also turn themselves on, e.g.
   change rdma to turn on FP, SIMD and RDMA as dependency bits.

2) Make a distinction between these two different type of features and have the
   framework handle it correctly.

Even though it's more code I went for the second approach, as it's the one
that'll be less fragile (people can't forget it) and gives the least surprises.

Effectively this patch changes the following:

The values before the => are the old compiler and after the => the new code.

-march=armv8.2-a+crypto+sha2 => -march=armv8.2-a+crypto
-march=armv8.2-a+sha2+aes => -march=armv8.2-a+crypto

The remaining behaviors stay the same.

gcc/ChangeLog:

PR target/88530
* common/config/aarch64/aarch64-common.c
(struct aarch64_option_extension): Add is_synthetic.
(all_extensions): Use it.
(TARGET_OPTION_INIT_STRUCT): Define hook.
(struct gcc_targetm_common): Moved to end.
(all_extensions_by_on): New.
(opt_ext_cmp, typedef opt_ext): New.
(aarch64_option_init_struct): New.
(aarch64_contains_opt): New.
(aarch64_get_extension_string_for_isa_flags): Output smallest set.
* config/aarch64/aarch64-option-extensions.def
(AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
(fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
Set is_synthetic to false.
(crypto): Set is_synthetic to true.
* config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
SYNTHETIC.

gcc/testsuite/ChangeLog:

PR target/88530
* gcc.target/aarch64/options_set_1.c: New test.
* gcc.target/aarch64/options_set_2.c: New test.
* gcc.target/aarch64/options_set_3.c: New test.
* gcc.target/aarch64/options_set_4.c: New test.
* gcc.target/aarch64/options_set_5.c: New test.
* gcc.target/aarch64/options_set_6.c: New test.
* gcc.target/aarch64/options_set_7.c: New test.
* gcc.target/aarch64/options_set_8.c: New test.
* gcc.target/aarch64/options_set_9.c: New test.

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

6 years agoArm: Update Armv8.4-a's FP16 FML intrinsics
tnfchris [Mon, 25 Feb 2019 17:48:55 +0000 (17:48 +0000)] 
Arm: Update Armv8.4-a's FP16 FML intrinsics

This patch updates the Armv8.4-a FP16 FML intrinsics's suffixes from u32 to f16
to be more consistent with the naming convention for intrinsics.

The specifications for these intrinsics have not been published yet so we do
not need to maintain the old names.

The patch was created with the following script:

grep -lIE "(vfml[as].+)_u32" -r gcc/ | grep -iEv ".+Changelog.*" \
  | xargs sed -i -E -e "s/(vfml[as].+)_u32/\1_f16/g"

gcc/ChangeLog:

* config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
Rename ...
(vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
vfmlsl_laneq_high_f16): ... To this.
* config/arm/neon.md: Update comments.

gcc/testsuite/ChangeLog:

* gcc.target/arm/simd/fp16fml_high.c (test_vfmlal_high_u32,
test_vfmlalq_high_u32, test_vfmlsl_high_u32, test_vfmlslq_high_u32):
Rename ....
(test_vfmlal_high_f16, test_vfmlalq_high_f16, test_vfmlsl_high_f16,
test_vfmlslq_high_f16): ... To this.
* gcc.target/arm/simd/fp16fml_lane_high.c (test_vfmlal_lane_high_u32,
tets_vfmlsl_lane_high_u32, test_vfmlal_laneq_high_u32,
test_vfmlsl_laneq_high_u32, test_vfmlalq_lane_high_u32,
test_vfmlslq_lane_high_u32, test_vfmlalq_laneq_high_u32,
test_vfmlslq_laneq_high_u32): Rename ...
(test_vfmlal_lane_high_f16, tets_vfmlsl_lane_high_f16,
test_vfmlal_laneq_high_f16, test_vfmlsl_laneq_high_f16,
test_vfmlalq_lane_high_f16, test_vfmlslq_lane_high_f16,
test_vfmlalq_laneq_high_f16, test_vfmlslq_laneq_high_f16): ... To this.
* gcc.target/arm/simd/fp16fml_lane_low.c (test_vfmlal_lane_low_u32,
test_vfmlsl_lane_low_u32, test_vfmlal_laneq_low_u32,
test_vfmlsl_laneq_low_u32, test_vfmlalq_lane_low_u32,
test_vfmlslq_lane_low_u32, test_vfmlalq_laneq_low_u32,
test_vfmlslq_laneq_low_u32): Rename ...
(test_vfmlal_lane_low_f16, test_vfmlsl_lane_low_f16,
test_vfmlal_laneq_low_f16, test_vfmlsl_laneq_low_f16,
test_vfmlalq_lane_low_f16, test_vfmlslq_lane_low_f16,
test_vfmlalq_laneq_low_f16, test_vfmlslq_laneq_low_f16): ... To this.
* gcc.target/arm/simd/fp16fml_low.c (test_vfmlal_low_u32,
test_vfmlalq_low_u32, test_vfmlsl_low_u32, test_vfmlslq_low_u32):
Rename ...
(test_vfmlal_low_f16, test_vfmlalq_low_f16, test_vfmlsl_low_f16,
test_vfmlslq_low_f16): ... To this.

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