Jakub Jelinek [Thu, 28 Feb 2019 13:49:38 +0000 (14:49 +0100)]
re PR c/89521 (ICE in expand_builtin_int_roundingfn, at builtins.c:2697)
PR c/89521
* gcc.dg/pr89521-1.c: New test.
* gcc.dg/pr89521-2.c: New test.
From-SVN: r269280
John David Anglin [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.
From-SVN: r269278
Jakub Jelinek [Thu, 28 Feb 2019 13:13:33 +0000 (14:13 +0100)]
re PR target/89434 (wrong code with -Og and __builtin_mul_overflow())
PR target/89434
* config/arm/arm.md (*subsi3_carryin_compare_const): Use
trunc_int_for_mode (-INTVAL (...), SImode), just instead of
-UINTVAL (...).
From-SVN: r269277
Tamar Christina [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.
From-SVN: r269276
Paolo Carlini [Thu, 28 Feb 2019 10:27:03 +0000 (10:27 +0000)]
re PR c++/89522 (ICE: trying to capture 'f' in instantiation of generic lambda)
2019-02-28 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/89522
* g++.dg/cpp1y/lambda-generic-ice10.C: New.
From-SVN: r269275
Jakub Jelinek [Thu, 28 Feb 2019 07:17:49 +0000 (08:17 +0100)]
re PR c/89525 (inform messages from -Wbuiltin-declaration-mismatch even with -w)
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.
From-SVN: r269274
Jakub Jelinek [Thu, 28 Feb 2019 07:16:38 +0000 (08:16 +0100)]
re PR c/89520 (ICE tree check: accessed operand 4 of call_expr with 3 operands in convert_to_integer_1, at convert.c:668)
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.
From-SVN: r269273
Ian Lance Taylor [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
From-SVN: r269271
GCC Administrator [Thu, 28 Feb 2019 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269270
Marek Polacek [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.
From-SVN: r269267
Ian Lance Taylor [Wed, 27 Feb 2019 22:35:10 +0000 (22:35 +0000)]
re PR go/89172 (FAIL: runtime/pprof)
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
From-SVN: r269266
Jason Merrill [Wed, 27 Feb 2019 21:54:25 +0000 (16:54 -0500)]
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.
From-SVN: r269265
Bernd Edlinger [Wed, 27 Feb 2019 20:14:55 +0000 (20:14 +0000)]
re PR rtl-optimization/89490 (char array constant put in string merge section)
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.
From-SVN: r269264
Marek Polacek [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.
From-SVN: r269262
Jakub Jelinek [Wed, 27 Feb 2019 18:11:26 +0000 (19:11 +0100)]
re PR target/70341 (cost model for addresses is incorrect, slsr is using reg + reg + CST for arm)
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.
From-SVN: r269260
Ian Lance Taylor [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
From-SVN: r269258
Jakub Jelinek [Wed, 27 Feb 2019 15:22:16 +0000 (16:22 +0100)]
re PR tree-optimization/89280 (ICE: Segmentation fault (in is_gimple_reg_type))
PR tree-optimization/89280
* gcc.dg/torture/pr57147-2.c (SetNaClSwitchExpectations): Add static
keyword.
From-SVN: r269256
Jakub Jelinek [Wed, 27 Feb 2019 14:50:35 +0000 (15:50 +0100)]
re PR target/70341 (cost model for addresses is incorrect, slsr is using reg + reg + CST for arm)
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.
From-SVN: r269255
Richard Biener [Wed, 27 Feb 2019 14:04:18 +0000 (14:04 +0000)]
re PR debug/88878 (.debug_pubnames/types empty with -flto)
2019-02-27 Richard Biener <rguenther@suse.de>
PR debug/88878
* dwarf2out.c (use_debug_types): Disable when in_lto_p.
From-SVN: r269253
Richard Biener [Wed, 27 Feb 2019 13:24:40 +0000 (13:24 +0000)]
passes.c (should_skip_pass_p): Do not skip cgraph-edge building.
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.
From-SVN: r269252
Richard Biener [Wed, 27 Feb 2019 12:51:43 +0000 (12:51 +0000)]
re PR debug/88878 (.debug_pubnames/types empty with -flto)
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.
From-SVN: r269251
Richard Biener [Wed, 27 Feb 2019 11:59:07 +0000 (11:59 +0000)]
re PR lto/89514 (-g -fdebug-types-section -flto gives 'Dwarf Error: bad length' in gdb)
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.
From-SVN: r269250
Jonathan Wakely [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.
From-SVN: r269249
Alejandro Martinez [Wed, 27 Feb 2019 10:38:25 +0000 (10:38 +0000)]
Replaced spaces with tab in Changelog, committed as obvious
From-SVN: r269248
Alejandro Martinez [Wed, 27 Feb 2019 10:23:54 +0000 (10:23 +0000)]
Add myself to write after approval.
From-SVN: r269247
Martin Jambor [Wed, 27 Feb 2019 10:07:01 +0000 (11:07 +0100)]
[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.
Co-Authored-By: Martin Sebor <msebor@redhat.com>
From-SVN: r269246
Paolo Carlini [Wed, 27 Feb 2019 10:02:23 +0000 (10:02 +0000)]
re PR c++/89488 (ICE in merge_exception_specifiers, at cp/typeck2.c:2395)
/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.
From-SVN: r269245
Jakub Jelinek [Wed, 27 Feb 2019 08:41:01 +0000 (09:41 +0100)]
re PR tree-optimization/89280 (ICE: Segmentation fault (in is_gimple_reg_type))
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.
From-SVN: r269243
Ian Lance Taylor [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
From-SVN: r269242
Ian Lance Taylor [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
From-SVN: r269241
Ian Lance Taylor [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
From-SVN: r269240
GCC Administrator [Wed, 27 Feb 2019 00:16:42 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269239
Steve Ellcey [Wed, 27 Feb 2019 00:02:53 +0000 (00:02 +0000)]
simd-builtins-1.f90: Update for aarch64*-*-*.
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.
From-SVN: r269236
Steve Ellcey [Wed, 27 Feb 2019 00:00:56 +0000 (00:00 +0000)]
aarch64.c (aarch64_get_multilib_abi_name): New function.
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.
From-SVN: r269235
Jonathan Wakely [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.
From-SVN: r269234
Jakub Jelinek [Tue, 26 Feb 2019 21:27:33 +0000 (22:27 +0100)]
re PR c++/89507 (bogus "size of array exceeds maximum object size")
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.
From-SVN: r269233
Eric Botcazou [Tue, 26 Feb 2019 21:08:22 +0000 (21:08 +0000)]
sparc-opts.h (enum processor_type): Rename to...
* 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.
From-SVN: r269232
Jakub Jelinek [Tue, 26 Feb 2019 20:36:29 +0000 (21:36 +0100)]
re PR tree-optimization/89500 (ICE: tree check: expected integer_cst, have ssa_name in get_len, at tree.h:5653)
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.
From-SVN: r269230
Jonathan Wakely [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.
From-SVN: r269229
Harald Anlauf [Tue, 26 Feb 2019 20:03:08 +0000 (20:03 +0000)]
re PR fortran/89492 (Endless compilation of an invalid TRANSFER after r269177)
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.
From-SVN: r269227
Thomas Koenig [Tue, 26 Feb 2019 19:10:00 +0000 (19:10 +0000)]
re PR fortran/89496 (gcc/fortran/trans-types.c:3015:9: runtime error: member access within null pointer of type 'struct gfc_formal_arglist')
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.
From-SVN: r269226
Uros Bizjak [Tue, 26 Feb 2019 18:41:53 +0000 (19:41 +0100)]
transfer.c (transfer_array_inner): Do not cast charlen to index_type.
* io/transfer.c (transfer_array_inner): Do not
cast charlen to index_type.
From-SVN: r269224
Martin Liska [Tue, 26 Feb 2019 17:27:52 +0000 (18:27 +0100)]
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.
From-SVN: r269221
Martin Liska [Tue, 26 Feb 2019 17:27:36 +0000 (18:27 +0100)]
Remove a legacy lto-symtab.c file.
2019-02-26 Martin Liska <mliska@suse.cz>
* lto-symtab.c: Remove.
From-SVN: r269220
Uros Bizjak [Tue, 26 Feb 2019 17:21:43 +0000 (18:21 +0100)]
extend.texi (__builtin_object_size): Use @pxref instead of @xref inside parenthesis.
* 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.
From-SVN: r269219
Jeff Law [Tue, 26 Feb 2019 17:08:06 +0000 (10:08 -0700)]
re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c -O1 start with r265398)
PR rtl-optimization/87761
* regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
detect obviously dead insns and delete them.
From-SVN: r269218
Tom de 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.
From-SVN: r269217
Ian Lance Taylor [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
From-SVN: r269216
Ian Lance Taylor [Tue, 26 Feb 2019 14:46:56 +0000 (14:46 +0000)]
re PR go/86535 (FreeBSD/PowerPC64 - Building Go Frontend support for gcc 7.3.0 fails)
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
From-SVN: r269214
Jakub Jelinek [Tue, 26 Feb 2019 14:37:39 +0000 (15:37 +0100)]
re PR c++/89481 (constexpr function allows writing one active union member and reading another)
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.
From-SVN: r269213
Richard Biener [Tue, 26 Feb 2019 14:09:19 +0000 (14:09 +0000)]
re PR tree-optimization/89505 (LibreOffice miscompilation starting with r260383)
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.
From-SVN: r269212
Richard Biener [Tue, 26 Feb 2019 11:03:45 +0000 (11:03 +0000)]
re PR tree-optimization/89489 (ICE in gimple_duplicate_bb, at tree-cfg.c:6257)
2019-02-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/89489
* tree-parloops.c (create_loop_fn): Copy over last_clique.
From-SVN: r269210
Eric Botcazou [Tue, 26 Feb 2019 10:55:16 +0000 (10:55 +0000)]
opt77.adb: New test.
* gnat.dg/opt77.adb: New test.
* gnat.dg/opt77_pkg.ad[sb]: New helper.
From-SVN: r269208
Jakub Jelinek [Tue, 26 Feb 2019 10:36:05 +0000 (11:36 +0100)]
re PR fortran/43210 (Initializer of huge static arrays should be improved)
PR fortran/43210
* trans-array.c (gfc_conv_array_initializer): Use RANGE_EXPR instead
of duplicating the initializer possibly many times.
From-SVN: r269207
Jakub Jelinek [Tue, 26 Feb 2019 10:08:29 +0000 (11:08 +0100)]
re PR target/89474 (ice in df_reg_chain_verify_unmarked, at df-scan.c:3995)
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.
From-SVN: r269206
Tom de 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.
From-SVN: r269204
Sandra Loosemore [Tue, 26 Feb 2019 02:33:26 +0000 (21:33 -0500)]
re PR c/80409 (Document that va_arg(ap, void*) can be used to consume any pointer argument)
2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
PR c/80409
gcc/
* doc/extend.texi (Variadic Pointer Args): New section.
From-SVN: r269203
Ian Lance Taylor [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
From-SVN: r269202
GCC Administrator [Tue, 26 Feb 2019 00:16:21 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269201
Jakub Jelinek [Mon, 25 Feb 2019 23:43:51 +0000 (00:43 +0100)]
re PR c/89495 (gcc/c-family/c-format.c:1272:20: runtime error: signed integer overflow:
214748365 * 10 cannot be represented in type 'int')
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.
From-SVN: r269198
Jakub Jelinek [Mon, 25 Feb 2019 22:58:45 +0000 (23:58 +0100)]
re PR c/77754 (internal compiler error : tree code 'call_expr' is not supported in LTO streams)
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.
From-SVN: r269197
Sandra Loosemore [Mon, 25 Feb 2019 20:38:42 +0000 (15:38 -0500)]
c.opt (Wmissing-attributes): Clean up doc string.
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).
Co-Authored-By: Martin Sebor <msebor@gmail.com>
From-SVN: r269196
Paul A. Clarke [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.
From-SVN: r269195
Joseph Myers [Mon, 25 Feb 2019 18:48:48 +0000 (18:48 +0000)]
* fr.po: Update.
From-SVN: r269194
Tamar Christina [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.
From-SVN: r269193
Tamar Christina [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.
From-SVN: r269192
Tamar Christina [Mon, 25 Feb 2019 17:46:16 +0000 (17:46 +0000)]
AArch64: 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/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
Rename ...
(vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
vfmlslq_laneq_high_f16): ... To this.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/fp16_fmul_high.h (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/aarch64/fp16_fmul_lane_high.h (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/aarch64/fp16_fmul_lane_low.h (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/aarch64/fp16_fmul_low.h (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.
* lib/target-supports.exp
(check_effective_target_arm_fp16fml_neon_ok_nocache): Update test.
From-SVN: r269191
Dominique d'Humieres [Mon, 25 Feb 2019 15:19:45 +0000 (16:19 +0100)]
re PR fortran/89282 (Garbage arithmetics results in fortran with -O3 and overloaded operators)
2019-02-25 Dominique d'Humieres <dominiq@gcc.gnu.org>
PR fortran/89282
* gfortran.dg/overload_3.f90: New test.
From-SVN: r269190
Alexander Monakov [Mon, 25 Feb 2019 15:14:39 +0000 (18:14 +0300)]
df-scan: fix use of mw_order in df_mw_compare (PR 86096)
PR rtl-optimization/86096
* df-scan.c (df_mw_compare): Do not check mw_reg fields when
comparing mw_order values.
From-SVN: r269189
Jakub Jelinek [Mon, 25 Feb 2019 15:01:01 +0000 (16:01 +0100)]
re PR c++/89285 (ICE after casting the this pointer in the constructor in C++17 mode)
PR c++/89285
* g++.dg/cpp1y/constexpr-89285-2.C: New test.
From-SVN: r269188
Dominique d'Humieres [Mon, 25 Feb 2019 10:39:38 +0000 (11:39 +0100)]
re PR libfortran/89274 (Inconsistent list directed output of INTEGER(16))
2019-02-25 Dominique d'Humieres <dominiq@gcc.gnu.org>
PR libfortran/89274
* gfortran.dg/list_directed_large.f90: New test.
2019-02-25 Dominique d'Humieres <dominiq@gcc.gnu.org>
PR libfortran/89274
* io/write.c (write_integer): Add width for INTEGER(16).
From-SVN: r269187
Jakub Jelinek [Mon, 25 Feb 2019 10:32:38 +0000 (11:32 +0100)]
re PR target/89434 (wrong code with -Og and __builtin_mul_overflow())
PR target/89434
* config/arm/arm.md (*subsi3_carryin_const): Use
arm_neg_immediate_operand predicate instead of
arm_not_immediate_operand, "L" constraint instead of "K" and
print it using %n2 instead of %B2.
(*subsi3_carryin_const0): New define_insn.
(*subsi3_carryin_compare_const): Use const_int_I_operand predicate
instead of arm_not_operand and "I" constraint instead of "K" and
print it using %n3 instead of %B2. Instead of using match_dup 2 add
another match_operand and in the condition check that it is negation
of operands[2].
(*subsi3_carryin_compare_const0): New define_ins.
(*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
*subsi3_carryin_const.
(*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
split into *subsi3_carryin_compare_const0 if the highpart is zero.
* gcc.c-torture/execute/pr89434.c: New test.
From-SVN: r269186
Jakub Jelinek [Mon, 25 Feb 2019 09:51:27 +0000 (10:51 +0100)]
re PR target/89438 (ICE in glibc/sysdeps/ieee754/dbl-64/e_pow.c (internal compiler error: in decompose, at rtl.h:2266))
PR target/89438
* config/arm.vfp.md (*negdf2_vfp): Use
gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
* config/arm/neon.md (neon_copysignf<mode>): Likewise.
* gcc.dg/pr89438.c: New test.
From-SVN: r269185
GCC Administrator [Mon, 25 Feb 2019 00:16:31 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269183
Paolo Carlini [Sun, 24 Feb 2019 23:44:11 +0000 (23:44 +0000)]
re PR c++/84585 (internal compiler error: in get_local_decls, at cp/name-lookup.c:3654)
2019-02-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84585
* g++.dg/cpp0x/pr84585.C: New.
From-SVN: r269180
Thomas Koenig [Sun, 24 Feb 2019 22:49:47 +0000 (22:49 +0000)]
re PR fortran/89174 (Allocation segfault with CLASS(*) MOLD)
2019-02-24 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/89174
* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Add is_mold
to garguments. If we are dealing with a MOLD, call
gfc_expr_to_initialize().
* trans-stmt.c (gfc_trans_allocate): For MOLD, pass is_mold=true
to gfc_find_and_cut_at_last_class_ref.
* trans.h (gfc_find_and_cut_at_last_class_ref): Add optional
argument is_mold with default false.
2019-02-24 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/89174
* gfortran.dg/allocate_with_mold_3.f90: New test.
From-SVN: r269179
H.J. Lu [Sun, 24 Feb 2019 22:41:55 +0000 (22:41 +0000)]
i386: Compile PR target/87007 tests with -mfpmath=sse
-mfpmath=sse is needed to enable SSE for FP math in 32-bit.
PR target/87007
* gcc.target/i386/pr87007-1.c: Compile with -mfpmath=sse.
* gcc.target/i386/pr87007-2.c: Likewise.
From-SVN: r269178
Harald Anlauf [Sun, 24 Feb 2019 20:03:28 +0000 (20:03 +0000)]
re PR fortran/89266 (ICE with TRANSFER of len=0 character array constructor)
2019-02-24 Harald Anlauf <anlauf@gmx.de>
PR fortran/89266
PR fortran/88326
* target-memory.c (gfc_element_size): Return false if element size
cannot be determined; element size is returned separately.
(gfc_target_expr_size): Return false if expression size cannot be
determined; expression size is returned separately.
* target-memory.h: Adjust prototypes.
* check.c (gfc_calculate_transfer_sizes): Adjust references to
gfc_target_expr_size, gfc_element_size.
* arith.c (hollerith2representation): Likewise.
* class.c (find_intrinsic_vtab): Likewise.
* simplify.c (gfc_simplify_sizeof): Likewise.
PR fortran/89266
PR fortran/88326
* gfortran.dg/pr89266.f90: New test.
* gfortran.dg/pr88326.f90: New test.
From-SVN: r269177
Jakub Jelinek [Sun, 24 Feb 2019 19:23:51 +0000 (20:23 +0100)]
re PR rtl-optimization/89445 (_mm512_maskz_loadu_pd "forgets" to use the mask)
PR rtl-optimization/89445
* simplify-rtx.c (simplify_ternary_operation): Don't use
simplify_merge_mask on operands that may trap.
* rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
second operand is CONST_VECTOR, check if any element could be zero.
Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
their operands can trap.
* gcc.target/i386/avx512f-pr89445.c: New test.
From-SVN: r269176
Jonathan Wakely [Sun, 24 Feb 2019 15:44:18 +0000 (15:44 +0000)]
PR libstdc++/89416 fix accessibility of members
PR libstdc++/89416
* include/bits/alloc_traits.h (__is_alloc_insertable_impl): Make
copy and move members public.
From-SVN: r269175
GCC Administrator [Sun, 24 Feb 2019 00:16:26 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269173
Jonathan Wakely [Sat, 23 Feb 2019 21:19:04 +0000 (21:19 +0000)]
Improve error message for bad arguments to script
* generate_libstdcxx_web_docs: Improve error output.
From-SVN: r269169
Jonathan Wakely [Sat, 23 Feb 2019 21:19:00 +0000 (21:19 +0000)]
P0340R2 Making std::underlying_type SFINAE-friendly
* include/std/type_traits (__underlying_type_impl): New helper to
make underlying_type SFINAE-friendly.
(underlying_type): Derive from __underlying_type_impl.
* testsuite/20_util/underlying_type/requirements/typedefs-3.cc: New
test.
From-SVN: r269168
Martin Sebor [Sat, 23 Feb 2019 20:46:04 +0000 (20:46 +0000)]
builtin-sprintf-10.c: Cast remaining wchar_t to wint_t to avoid a bogus -Wformat warning in ILP32...
gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/builtin-sprintf-10.c: Cast remaining
wchar_t to wint_t to avoid a bogus -Wformat warning in
ILP32 (bug 77970).
From-SVN: r269167
Martin Sebor [Sat, 23 Feb 2019 20:25:57 +0000 (20:25 +0000)]
gimple-ssa-sprintf.c (target_strtol): Rename...
gcc/ChangeLog:
* gimple-ssa-sprintf.c (target_strtol): Rename...
(target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
(parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
check for range error.
From-SVN: r269166
H.J. Lu [Sat, 23 Feb 2019 19:58:52 +0000 (19:58 +0000)]
Include "../../../libgfortran/ISO_Fortran_binding.h"
PR testsuite/89476
* gfortran.dg/ISO_Fortran_binding_5.c: Include
"../../../libgfortran/ISO_Fortran_binding.h".
* gfortran.dg/ISO_Fortran_binding_6.c: Likewise.
From-SVN: r269165
H.J. Lu [Sat, 23 Feb 2019 19:39:35 +0000 (19:39 +0000)]
driver: Also prune joined switches with negation
When -march=native is passed to host_detect_local_cpu to the backend,
it overrides all command lines after it. That means
$ gcc -march=native -march=skylake-avx512
is the treated as
$ gcc -march=skylake-avx512 -march=native
Prune joined switches with Negative and RejectNegative to allow
-march=skylake-avx512 to override previous -march=native on command-line.
gcc/
PR driver/69471
* opts-common.c (prune_options): Also prune joined switches
with Negative and RejectNegative.
* config/i386/i386.opt (march=): Add Negative(march=).
(mtune=): Add Negative(mtune=).
* doc/options.texi: Document Negative used together with Joined
and RejectNegative.
gcc/testsuite/
PR driver/69471
* gcc.dg/pr69471-1.c: New test.
* gcc.dg/pr69471-2.c: Likewise.
* gcc.target/i386/pr69471-3.c: Likewise.
From-SVN: r269164
Jerry DeLisle [Sat, 23 Feb 2019 18:07:10 +0000 (18:07 +0000)]
re PR fortran/84387 (Defined output does not work for a derived type that has no components)
2019-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/84387
* trans-io.c (transfer_expr): Do not return if there are no
components to the derived type or class.
* gfortran.dg/dtio_34.f90: New test.
From-SVN: r269161
Marek Polacek [Sat, 23 Feb 2019 14:54:23 +0000 (14:54 +0000)]
re PR c++/89419 (ICE in is_normal_capture_proxy starting with r253601)
PR c++/89419
* g++.dg/cpp1y/lambda-generic-89419.C: New test.
From-SVN: r269159
Marek Polacek [Sat, 23 Feb 2019 14:05:31 +0000 (14:05 +0000)]
PR c++/88294 - ICE with non-constant noexcept-specifier.
* pt.c (maybe_instantiate_noexcept): Set up the list of local
specializations. Set current_class_{ptr,ref}.
* g++.dg/cpp0x/noexcept34.C: New test.
* g++.dg/cpp0x/noexcept35.C: New test.
From-SVN: r269158
Paul Thomas [Sat, 23 Feb 2019 13:18:47 +0000 (13:18 +0000)]
re PR fortran/88117 (ICE in gimplify_var_or_parm_decl, at gimplify.c:2697)
2019-02-23 Paul Thomas <pault@gcc.gnu.org>
PR fortran/88117
* resolve.c (deferred_op_assign): Return if the lhs expression
has the pointer attribute.
* trans-expr.c (gfc_trans_assignment_1): Do not fix the string
length if the lhs expression has the pointer attribute.
2019-02-23 Paul Thomas <pault@gcc.gnu.org>
PR fortran/88117
* gfortran.dg/deferred_character_32.f90 : New test
From-SVN: r269157
Paul Thomas [Sat, 23 Feb 2019 12:18:44 +0000 (12:18 +0000)]
re PR fortran/89385 (Incorrect members of C descriptor for an allocatable object)
2019-02-23 Paul Thomas <pault@gcc.gnu.org>
PR fortran/89385
PR fortran/89366
* decl.c (gfc_verify_c_interop_param): Restriction on string
length being one is lifted for F2018.
* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): For scalar
characters with intent in, make a temporary and copy the result
of the expression evaluation into it.
(gfc_conv_procedure_call): Set a flag for character formal args
having a character length that is not unity. If the procedure
is bind C, call gfc_conv_gfc_desc_to_cfi_desc in this case.
Also, extend bind C calls to unconditionally convert both
pointers and allocatable expressions.
2019-02-23 Paul Thomas <pault@gcc.gnu.org>
PR fortran/89385
* gfortran.dg/ISO_Fortran_binding_1.f90 : Correct test for
previously incorrect lbound for allocatable expressions. Also
correct stop values to avoid repetition.
* gfortran.dg/ISO_Fortran_binding_5.f90 : New test
* gfortran.dg/ISO_Fortran_binding_5.c : Support previous test.
PR fortran/89366
* gfortran.dg/ISO_Fortran_binding_6.f90 : New test
* gfortran.dg/ISO_Fortran_binding_6.c : Support previous test.
* gfortran.dg/pr32599.f03 : Set standard to F2008.
2019-02-23 Paul Thomas <pault@gcc.gnu.org>
PR fortran/89385
PR fortran/89366
* runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc) : In the
interchange between character and derived, the character type
was being set incorrectly.
(gfc_desc_to_cfi_desc) : Eliminate the interchange of types in
this function. Do not add the kind and length information to
the type field of structures. Lbounds were incorrectly being
set to zero for allocatable and pointer descriptors. Should
have been non-pointer, non-allocatables that received this
treatment.
From-SVN: r269156
Jonathan Wakely [Sat, 23 Feb 2019 03:01:59 +0000 (03:01 +0000)]
PR libstdc++/89446 fix null pointer dereference in char_traits
PR libstdc++/89446
* include/bits/char_traits.h (__constant_char_array): Check index is
in range before dereferencing.
(char_traits<char>::compare, char_traits<char>::find)
(char_traits<char8_t>::compare, char_traits<char8_t>::find): Return
immediately if n is zero.
(char_traits<wchar_t>::compare, char_traits<wchar_t>::find): Likewise.
Remove workarounds for PR 67026.
* testsuite/21_strings/basic_string_view/operators/char/89446.cc:
New test.
* testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
New test.
From-SVN: r269148
David Malcolm [Sat, 23 Feb 2019 01:19:38 +0000 (01:19 +0000)]
Capture source location of dtors (PR c++/89390)
gcc/cp/ChangeLog:
PR c++/89390
* parser.c (cp_parser_unqualified_id): Capture and use locations
for destructors.
gcc/testsuite/ChangeLog:
PR c++/89390
* g++.dg/diagnostic/pr89390.C: Update expected location of error,
renaming to a multicharacter name, so that start != finish. Add
tests for dtor locations.
From-SVN: r269145
GCC Administrator [Sat, 23 Feb 2019 00:16:28 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r269142
David Malcolm [Sat, 23 Feb 2019 00:14:52 +0000 (00:14 +0000)]
re PR tree-optimization/88074 (g++ hangs on math expression)
PR middle-end/88074
* simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use
mpfr_number_p && !mpfr_zero_p instead of mpfr_regular_p.
(norm2_add_squared): Likewise. Use mp_exp_t rather than mpfr_exp_t.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r269139
Paolo Carlini [Fri, 22 Feb 2019 23:16:14 +0000 (23:16 +0000)]
re PR c++/84676 (internal compiler error: Segmentation fault (build_new_op_1))
2019-02-22 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84676
* g++.dg/cpp0x/pr84676.C: New.
From-SVN: r269138
Martin Sebor [Fri, 22 Feb 2019 23:08:23 +0000 (23:08 +0000)]
builtin-sprintf-10.c: Cast wchar_t to wint_t to avoid a bogus -Wformat warning in ILP32 (bug 77970).
gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/builtin-sprintf-10.c: Cast wchar_t to wint_t
to avoid a bogus -Wformat warning in ILP32 (bug 77970).
From-SVN: r269137
Eric Botcazou [Fri, 22 Feb 2019 21:25:59 +0000 (21:25 +0000)]
baseline_symbols.txt: Adjust.
* config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Adjust.
* config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.
From-SVN: r269136
Harald Anlauf [Fri, 22 Feb 2019 20:35:38 +0000 (20:35 +0000)]
re PR fortran/83057 (OPEN without a filename and without STATUS='SCRATCH' could produce a warning)
2019-02-22 Harald Anlauf <anlauf@gmx.de>
PR fortran/83057
* io.c (gfc_match_open): Fix logic in checks of OPEN statement
when NEWUNIT= is specified.
PR fortran/83057
* gfortran.dg/newunit_6.f90: New test.
From-SVN: r269134