gcc.git
5 years agore PR fortran/71203 (ICE in add_init_expr_to_sym, at fortran/decl.c:1512 and :1564)
Thomas Koenig [Sat, 9 Mar 2019 14:10:17 +0000 (14:10 +0000)]
re PR fortran/71203 (ICE in add_init_expr_to_sym, at fortran/decl.c:1512 and :1564)

2019-03-09  Thomas König  <tkoenig@gcc.gnu.org>

PR fortran/71203
* decl.c (add_init_expr_to_sym):  Add shape if init has none.  Add
assert that it has to be an EXPR_ARRAY in this case.

2019-03-09  Thomas König  <tkoenig@gcc.gnu.org>

PR fortran/71203
* gfortran.dg/array_simplify_3.f90: New test case.

From-SVN: r269526

5 years agore PR c/88568 ('dllimport' no longer implies 'extern' in C)
Jakub Jelinek [Sat, 9 Mar 2019 12:08:23 +0000 (13:08 +0100)]
re PR c/88568 ('dllimport' no longer implies 'extern' in C)

PR c/88568
* attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.

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

From-SVN: r269525

5 years agore PR target/79645 (missing period in microblaze.opt)
Jakub Jelinek [Sat, 9 Mar 2019 09:28:04 +0000 (10:28 +0100)]
re PR target/79645 (missing period in microblaze.opt)

PR target/79645
* common.opt (fdiagnostics-show-labels,
fdiagnostics-show-line-numbers, fdiagnostics-format=,
fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
gas-locview-support, ginline-points, ginternal-reset-location-views):
Terminate description text with a dot.
* config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
* config/mcore/mcore.opt (m210, m340): Likewise.
* config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
mnops=): Start description text with a capital letter.
* config/arc/arc.opt (msize-level=): Likewise.
* config/sh/sh.opt (minline-ic_invalidate): Likewise.
* config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
mnewlib): Likewise.
* config/ft32/ft32.opt (msim): Likewise.
(mft32b, mcompress): Likewise.  Terminate description text with a dot.
(mnodiv, mnopm): Terminate description text with a dot.
* config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
a colon.
* config/i386/i386.opt (prefer_vector_width, instrument_return):
Likewise.
* config/rx/rx.opt (nofpu): Remove trailing spaces from description
text.
lto/
* lang.opt: Terminate description text with a dot.

From-SVN: r269523

5 years agore PR rtl-optimization/89634 (gmp-ecm miscompilation on s390x with -march=zEC12 ...
Jakub Jelinek [Sat, 9 Mar 2019 08:25:48 +0000 (09:25 +0100)]
re PR rtl-optimization/89634 (gmp-ecm miscompilation on s390x with -march=zEC12 -m64 -O2)

PR rtl-optimization/89634
* cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
are modified in BB_END (e->src) instruction.

* gcc.c-torture/execute/pr89634.c: New test.

From-SVN: r269522

5 years agore PR go/89447 (libgo largefile support is incomplete and inconsistent)
Ian Lance Taylor [Sat, 9 Mar 2019 02:10:22 +0000 (02:10 +0000)]
re PR go/89447 (libgo largefile support is incomplete and inconsistent)

PR go/89447
    syscall, internal/syscall: adjust use of largefile functions

    Consistently call __go_openat for openat.  Use fstatat64, creat64,
    sendfile64, and getdents64 where needed.

    Based on patch by Rainer Orth.

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

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

From-SVN: r269521

5 years agoDaily bump.
GCC Administrator [Sat, 9 Mar 2019 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r269520

5 years agore PR c/85870 ([LTO1] ICE in linemap_line_start, at libcpp/line-map.c:794)
Jakub Jelinek [Fri, 8 Mar 2019 22:30:34 +0000 (23:30 +0100)]
re PR c/85870 ([LTO1] ICE in linemap_line_start, at libcpp/line-map.c:794)

PR c/85870
* gcc.dg/lto/pr85870_0.c: Add dg-extra-ld-options with
-r -nostdlib -flinker-output=nolto-rel.

From-SVN: r269516

5 years agoi386.c: make "sorry" message more amenable to translation (PR target/79926)
David Malcolm [Fri, 8 Mar 2019 22:27:08 +0000 (22:27 +0000)]
i386.c: make "sorry" message more amenable to translation (PR target/79926)

gcc/ChangeLog:
PR target/79926
* config/i386/i386.c (ix86_set_current_function): Make "sorry"
messages more amenable to translation, and improve wording.

gcc/testsuite/ChangeLog:
PR target/79926
* gcc.target/i386/interrupt-387-err-1.c: Update expected message.
* gcc.target/i386/interrupt-387-err-2.c: Likewise.
* gcc.target/i386/interrupt-mmx-err-1.c: Likewise.
* gcc.target/i386/interrupt-mmx-err-2.c: Likewise.

From-SVN: r269515

5 years agore PR c++/63540 (Erroneous "'Derived' declares a move constructor or move assignment...
Paolo Carlini [Fri, 8 Mar 2019 21:22:07 +0000 (21:22 +0000)]
re PR c++/63540 (Erroneous "'Derived' declares a move constructor or move assignment operator" in error.)

2019-03-08  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/63540
* g++.dg/cpp0x/implicit17.C: New.

From-SVN: r269508

5 years agore PR c++/22149 (func pointer non-type template parm invalid access control)
Paolo Carlini [Fri, 8 Mar 2019 20:59:39 +0000 (20:59 +0000)]
re PR c++/22149 (func pointer non-type template parm invalid access control)

2019-03-08  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/22149
* g++.dg/template/access29.C: New.

From-SVN: r269507

5 years agors6000-p8swap.c (rs6000_analyze_swaps): Rebuild ud- and du-chains between phases.
Bill Schmidt [Fri, 8 Mar 2019 19:47:05 +0000 (19:47 +0000)]
rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild ud- and du-chains between phases.

2019-03-08  Bill Schmidt  <wschmidt@linux.ibm.com>

* config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
ud- and du-chains between phases.

From-SVN: r269505

5 years agore PR c++/82075 (structured binding fails with empty base class)
Jakub Jelinek [Fri, 8 Mar 2019 18:31:27 +0000 (19:31 +0100)]
re PR c++/82075 (structured binding fails with empty base class)

PR c++/82075
* g++.dg/cpp1z/decomp49.C: New test.

From-SVN: r269504

5 years agoFix POLY_INT_CST/CONST_POLY_INT typo (PR 89631)
Richard Sandiford [Fri, 8 Mar 2019 18:18:23 +0000 (18:18 +0000)]
Fix POLY_INT_CST/CONST_POLY_INT typo (PR 89631)

2019-03-08  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
PR debug/89631
* dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
instead of POLY_INT_CST.

From-SVN: r269500

5 years ago[GCC, Arm] Fix availability of FP16-FP64 conversion instructions
Andre Vieira [Fri, 8 Mar 2019 17:29:02 +0000 (17:29 +0000)]
[GCC, Arm] Fix availability of FP16-FP64 conversion instructions

vcvtb.f16.f64 and vcvtb.f64.f16 were being made available even for FPUs that do
not support double precision.  This patch fixes that.

gcc/ChangeLog:
2019-03-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
requirement.

gcc/testsuite/ChangeLog:
2019-03-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.target/arm/f16_f64_conv_no_dp.c: New test.

From-SVN: r269499

5 years agore PR target/68924 (No intrinsic for x86 `MOVQ m64, %xmm` in 32bit mode.)
Uros Bizjak [Fri, 8 Mar 2019 15:53:47 +0000 (16:53 +0100)]
re PR target/68924 (No intrinsic for x86  `MOVQ m64, %xmm`  in 32bit mode.)

PR target/68924
PR target/78782
PR target/87558
* config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
(_mm_storeu_si64): Ditto.

testsuite/ChangeLog:

PR target/68924
PR target/78782
PR target/87558
* gcc.target/i386/pr78782.c: New test.
* gcc.target/i386/pr87558.c: Ditto.

From-SVN: r269497

5 years agoAdd tests for resolved PR (PR c/85870).
Jakub Jelinek [Fri, 8 Mar 2019 14:04:27 +0000 (15:04 +0100)]
Add tests for resolved PR (PR c/85870).

2019-03-08  Jakub Jelinek  <jakub@redhat.com>

PR c/85870
* gcc.dg/lto/pr85870_0.c: New test.
* gcc.dg/lto/pr85870_1.c: New test.

From-SVN: r269495

5 years agoFix text of hyperlink in manual
Jonathan Wakely [Fri, 8 Mar 2019 13:56:53 +0000 (13:56 +0000)]
Fix text of hyperlink in manual

* doc/xml/manual/using.xml: Use link element instead of xref.
* doc/html/*: Regenerate.

From-SVN: r269494

5 years agoAdd fixed underlying type to enum path::format
Jonathan Wakely [Fri, 8 Mar 2019 13:56:48 +0000 (13:56 +0000)]
Add fixed underlying type to enum path::format

* include/bits/fs_path.h (path::format): Add fixed underlying type.

From-SVN: r269493

5 years agox86: Disable jump tables when retpolines are used (PR target/86952).
Martin Liska [Fri, 8 Mar 2019 12:55:40 +0000 (13:55 +0100)]
x86: Disable jump tables when retpolines are used (PR target/86952).

2019-03-08  Martin Liska  <mliska@suse.cz>

PR target/86952
* config/i386/i386.c (ix86_option_override_internal): Disable
jump tables when retpolines are used.
2019-03-08  Martin Liska  <mliska@suse.cz>

PR target/86952
* gcc.target/i386/pr86952.c: New test.
* gcc.target/i386/indirect-thunk-7.c: Use jump tables to match
scanned pattern.
* gcc.target/i386/indirect-thunk-inline-7.c: Likewise.

From-SVN: r269492

5 years agoRestrict IPA split (PR go/63560).
Jan Hubicka [Fri, 8 Mar 2019 12:37:54 +0000 (13:37 +0100)]
Restrict IPA split (PR go/63560).

2019-03-08  Jan Hubicka  <hubicka@ucw.cz>

PR go/63560
* ipa-split.c (execute_split_functions): Do not split
'noinline' or 'section' function.

From-SVN: r269491

5 years agore PR target/79846 (s390: untranslatable diagnostic in s390.c)
Jakub Jelinek [Fri, 8 Mar 2019 10:53:27 +0000 (11:53 +0100)]
re PR target/79846 (s390: untranslatable diagnostic in s390.c)

PR target/79846
* config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
HOST_WIDE_INT_PRINT_DEC.  Formatting fixes.

From-SVN: r269489

5 years agore PR ipa/80000 (diagnostics: trailing spaces in "one definition rule ")
Jakub Jelinek [Fri, 8 Mar 2019 10:52:38 +0000 (11:52 +0100)]
re PR ipa/80000 (diagnostics: trailing spaces in "one definition rule  ")

PR ipa/80000
* ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
from diagnostics.  Formatting fixes.

PR target/85665
* ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
warn_odr diagnostics.

From-SVN: r269488

5 years agore PR other/80058 (fix double spaces in string literals everywhere)
Jakub Jelinek [Fri, 8 Mar 2019 10:51:28 +0000 (11:51 +0100)]
re PR other/80058 (fix double spaces in string literals everywhere)

PR other/80058
* lra-constraints.c (process_alt_operands): Avoid one space before
" at the end of line and another after " on another line in a string
literal.
* attribs.c (handle_dll_attribute): Likewise.
* config/avr/avr-devices.c (avr_texinfo): Likewise.
cp/
* parser.c (cp_parser_template_declaration_after_parameters): Avoid
one space before " at the end of line and another after " on another
line in a string literal.
fortran/
* arith.c (gfc_complex2complex): Avoid two spaces in the middle of
diagnostics.
* resolve.c (resolve_allocate_expr): Likewise.

From-SVN: r269487

5 years agogimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap warning_at or inform...
Jakub Jelinek [Fri, 8 Mar 2019 10:50:23 +0000 (11:50 +0100)]
gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap warning_at or inform messages in G_() if there is no ?:.

* gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
warning_at or inform messages in G_() if there is no ?:.

From-SVN: r269486

5 years agore PR tree-optimization/89550 (Spurious array-bounds warning when using __PRETTY_FUNC...
Jakub Jelinek [Fri, 8 Mar 2019 10:46:39 +0000 (11:46 +0100)]
re PR tree-optimization/89550 (Spurious array-bounds warning when using __PRETTY_FUNCTION__ as a string_view)

PR tree-optimization/89550
* builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
returned true.  Formatting fixes.
(expand_builtin_strnlen): Formatting fixes.
* tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
if warning_at returned true.
* tree-cfg.c (pass_warn_function_return::execute): Likewise.
c-family/
* c-common.c (c_common_truthvalue_conversion): Only set
TREE_NO_WARNING if warning_at returned true.
* c-warn.c (overflow_warning, warn_logical_operator): Likewise.
c/
* c-decl.c (finish_function): Only set TREE_NO_WARNING if warning_at
returned true.
(c_write_global_declarations_1): Only set TREE_NO_WARNING if pedwarn
or warning returned true.
cp/
* semantics.c (maybe_convert_cond): Only set TREE_NO_WARNING if
warning_at returned true.
* decl2.c (c_parse_final_cleanups): Likewise.
* typeck.c (convert_for_assignment): Likewise.
* decl.c (finish_function): Likewise.

From-SVN: r269485

5 years agore PR target/89578 (5% runtime regression for 481.wrf at -Ofast -flto)
Richard Biener [Fri, 8 Mar 2019 10:20:12 +0000 (10:20 +0000)]
re PR target/89578 (5% runtime regression for 481.wrf at -Ofast -flto)

2019-03-08  Richard Biener  <rguenther@suse.de>

PR middle-end/89578
* cfgloop.h (struct loop): Add owned_clique field.
* cfgloopmanip.c (copy_loop_info): Copy it.
* tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
cliques.
* tree-inline.c (copy_loops): Remap owned_clique.
* lto-streamer-in.c (input_cfg): Stream owned_clique.
* lto-streamer-out.c (output_cfg): Likewise.

From-SVN: r269484

5 years agore PR c++/89585 (GCC 8.3: asm volatile no longer accepted at file scope)
Jakub Jelinek [Fri, 8 Mar 2019 07:45:23 +0000 (08:45 +0100)]
re PR c++/89585 (GCC 8.3: asm volatile no longer accepted at file scope)

PR c++/89585
* parser.c (cp_parser_asm_definition): Just warn instead of error
on volatile qualifier outside of function body.

* g++.dg/asm-qual-3.C: Adjust expected diagnostics for toplevel
asm volatile.

From-SVN: r269483

5 years agore PR c++/89599 (C-style function-pointer-to-void* cast is handled inconsistently)
Jakub Jelinek [Fri, 8 Mar 2019 07:43:58 +0000 (08:43 +0100)]
re PR c++/89599 (C-style function-pointer-to-void* cast is handled inconsistently)

PR c++/89599
* constexpr.c (potential_constant_expression_1): Reject
REINTERPRET_CAST_P NOP_EXPRs.

* g++.dg/ubsan/vptr-4.C: Adjust expected diagnostics.
* g++.dg/parse/array-size2.C: Likewise.
* g++.dg/cpp0x/constexpr-89599.C: New test.

From-SVN: r269482

5 years agore PR c++/89622 (G++ prints notes, but no warning or error)
Jakub Jelinek [Fri, 8 Mar 2019 07:42:51 +0000 (08:42 +0100)]
re PR c++/89622 (G++ prints notes, but no warning or error)

PR c++/89622
* call.c (joust): Call print_z_candidate only if pedwarn returned
true.

* g++.dg/warn/pr89622.C: New test.

From-SVN: r269481

5 years agore PR target/80190 (darwin: untranslateable placeholder "non-ASCII character")
Jakub Jelinek [Fri, 8 Mar 2019 07:39:31 +0000 (08:39 +0100)]
re PR target/80190 (darwin: untranslateable placeholder "non-ASCII character")

PR target/80190
* config/darwin.c: Include intl.h.
(darwin_build_constant_cfstring): Improve i18n of diagnostics by not
composing the message out of two separate parts.

From-SVN: r269480

5 years agore PR libstdc++/89477 (Incorrect CTAD deduction guides for set and multiset)
François Dumont [Fri, 8 Mar 2019 05:53:09 +0000 (05:53 +0000)]
re PR libstdc++/89477 (Incorrect CTAD deduction guides for set and multiset)

2019-03-08  François Dumont  <fdumont@gcc.gnu.org>

PR libstdc++/89477
* include/debug/map.h (map): Use _RequireNotAllocator to constrain
parameters in deduction guides.
* include/debug/multimap.h (multimap): Likewise.
* include/debug/set.h (multimap): Likewise.
* include/debug/multiset.h (multimap): Likewise.
* include/debug/unordered_map (unordered_map): Likewise.
(unordered_multimap): Likewise.
* include/debug/unordered_set (unordered_set): Likewise.
(unordered_multiset): Likewise.

From-SVN: r269479

5 years agore PR libstdc++/89608 (Undetected iterator invalidations on unordered containers...
François Dumont [Fri, 8 Mar 2019 05:37:50 +0000 (05:37 +0000)]
re PR libstdc++/89608 (Undetected iterator invalidations on unordered containers in debug mode)

2019-03-08  François Dumont  <fdumont@gcc.gnu.org>

PR libstdc++/89608
* include/debug/unordered_map (unordered_map<>::_M_check_rehashed):
Invalidate all iterators in case of rehash.
(unordered_multimap<>::_M_check_rehashed): Likewise.
* include/debug/unordered_set
(unordered_set<>::_M_check_rehashed): Likewise.
(unordered_multiset<>::_M_check_rehashed): Likewise.
* testsuite/23_containers/unordered_set/debug/89608_neg.cc: New.

From-SVN: r269478

5 years agoPR c++/88123 - lambda and using-directive.
Jason Merrill [Fri, 8 Mar 2019 02:54:41 +0000 (21:54 -0500)]
PR c++/88123 - lambda and using-directive.

For named function calls in a template, the result of unqualified lookup is
safed in CALL_EXPR_FN.  But for operator expressions, no unqualified lookup
is performed until we know whether the operands have class type.  So when we
see in a lambda a use of an operator that might be overloaded, we need to do
that lookup then and save it away somewhere.  One possibility would be in
the expression, but we can't really add extra conditional operands to
standard tree codes.  I mostly implemented another approach using a new
WITH_LOOKUP_EXPR code, but teaching everywhere how to handle a new tree code
is always complicated.  Then it occurred to me that we could associate the
lookups with the function, which is both simpler and smaller.  So this patch
stores any operator bindings needed by a lambda function in an internal
attribute on the lambda call operator.

* name-lookup.c (op_unqualified_lookup)
(maybe_save_operator_binding, discard_operator_bindings)
(push_operator_bindings): New.
* typeck.c (build_x_binary_op, build_x_unary_op): Call
maybe_save_operator_binding.
* decl.c (start_preparsed_function): Call push_operator_bindings.
* tree.c (cp_free_lang_data): Call discard_operator_bindings.

From-SVN: r269477

5 years agoDaily bump.
GCC Administrator [Fri, 8 Mar 2019 00:16:34 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r269476

5 years ago* sv.po: Update.
Joseph Myers [Fri, 8 Mar 2019 00:06:15 +0000 (00:06 +0000)]
* sv.po: Update.

From-SVN: r269473

5 years agoRISC-V: Add libstdc++ check-abi support.
Andreas Schwab [Thu, 7 Mar 2019 23:24:59 +0000 (23:24 +0000)]
RISC-V: Add libstdc++ check-abi support.

Andreas Schwab  <schwab@suse.de>
* config/abi/post/riscv64-linux-gnu: New directory.
* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: New file.

From-SVN: r269472

5 years agore PR target/80003 (i386.c: %s placeholder is no semantic grammar unit)
Jakub Jelinek [Thu, 7 Mar 2019 21:32:21 +0000 (22:32 +0100)]
re PR target/80003 (i386.c: %s placeholder is no semantic grammar unit)

PR target/80003
* config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
doesn't start with a capital letter and doesn't end with a dot.
(ix86_function_arg_boundary): Make sure diagnostics doesn't start
with a capital letter.
(ix86_mangle_function_version_assembler_name): Likewise.
(ix86_generate_version_dispatcher_body): Likewise.
(fold_builtin_cpu): Likewise.
(get_builtin_code_for_version): Likewise.  Remove extraneous space.
(ix86_handle_interrupt_attribute): Make the diagnostics easier for
translators, wrap full type name in %qs.

* gcc.target/i386/pr68657.c: Adjust expected diagnostics wording.
* gcc.target/i386/interrupt-6.c: Likewise.
* g++.target/i386/pr57362.C: Adjust capitalization in dg-prune-output.

From-SVN: r269471

5 years ago* fi.po: Update.
Joseph Myers [Thu, 7 Mar 2019 20:50:30 +0000 (20:50 +0000)]
* fi.po: Update.

From-SVN: r269470

5 years agore PR c++/84518 (ICE with lambda capturing broken variable)
Paolo Carlini [Thu, 7 Mar 2019 20:49:42 +0000 (20:49 +0000)]
re PR c++/84518 (ICE with lambda capturing broken variable)

2019-03-07  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84518
* g++.dg/cpp0x/lambda/lambda-ice30.C: New.
* g++.dg/cpp0x/lambda/lambda-ice31.C: Likewise.

From-SVN: r269469

5 years agore PR translation/79999 (possible typo in gimplify.c: depend(sink:))
Jakub Jelinek [Thu, 7 Mar 2019 19:46:11 +0000 (20:46 +0100)]
re PR translation/79999 (possible typo in gimplify.c: depend(sink:))

PR translation/79999
* gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
depend clause with source (or sink) modifier.
* omp-expand.c (expand_omp_ordered_sink): Likewise.

* c-c++-common/gomp/doacross-1.c: Adjust expected diagnostics.
* c-c++-common/gomp/doacross-3.c: New test.

From-SVN: r269468

5 years agore PR target/89602 (Missing AVX512 intrinsics)
Jakub Jelinek [Thu, 7 Mar 2019 19:10:21 +0000 (20:10 +0100)]
re PR target/89602 (Missing AVX512 intrinsics)

PR target/89602
* config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
*avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
(avx512f_load<mode>_mask): New define_expand.
* config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
__builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
__builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
__builtin_ia32_movess_mask): New builtins.
* config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
_mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
_mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
_mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.

* gcc.target/i386/avx512f-vmovss-1.c: New test.
* gcc.target/i386/avx512f-vmovss-2.c: New test.
* gcc.target/i386/avx512f-vmovss-3.c: New test.
* gcc.target/i386/avx512f-vmovsd-1.c: New test.
* gcc.target/i386/avx512f-vmovsd-2.c: New test.
* gcc.target/i386/avx512f-vmovsd-3.c: New test.

From-SVN: r269467

5 years agod/dmd: Merge upstream dmd d517c0e6a
Iain Buclaw [Thu, 7 Mar 2019 16:57:23 +0000 (16:57 +0000)]
d/dmd: Merge upstream dmd d517c0e6a

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

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

From-SVN: r269465

5 years agoZero local estimated benefit for cloning extern inline function
Martin Jambor [Thu, 7 Mar 2019 16:42:20 +0000 (17:42 +0100)]
Zero local estimated benefit for cloning extern inline function

2019-03-07  Martin Jambor  <mjambor@suse.cz>

PR lto/87525
* ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
for extern inline functions.

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

From-SVN: r269464

5 years agoPR c++/88820 - ICE with CTAD and member template used in DMI.
Jason Merrill [Thu, 7 Mar 2019 16:15:56 +0000 (11:15 -0500)]
PR c++/88820 - ICE with CTAD and member template used in DMI.

Here the problem was that in order to form a FUNCTION_DECL for foo<int> in
the uninstantiated template, we were trying to deduce template args for S
from the template parm itself, and failing.

* pt.c (do_class_deduction): Handle parm used as its own arg.

From-SVN: r269463

5 years agoRelax cgraph_node::clone_of_p to also look through former clones
Martin Jambor [Thu, 7 Mar 2019 16:03:34 +0000 (17:03 +0100)]
Relax cgraph_node::clone_of_p to also look through former clones

2019-03-07  Martin Jambor  <mjambor@suse.cz>

PR ipa/88235
* cgraph.h (cgraph_node): New inline method former_thunk_p.
* cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
(clone_of_p): Treat expanded thunks like thunks, be optimistic if they
have multiple callees.  At the end check if declarations match as
opposed to cgraph_nodes.

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

From-SVN: r269462

5 years agoSignificantly speed up verifiers for a cgraph_node with many clones.
Martin Liska [Thu, 7 Mar 2019 15:33:52 +0000 (16:33 +0100)]
Significantly speed up verifiers for a cgraph_node with many clones.

2019-03-07  Martin Liska  <mliska@suse.cz>

* cgraph.c (cgraph_node::verify_node): Verify with a neighbour
which is equivalent to searching for this in clones chain.
* symtab.c (symtab_node::verify_base): Similarly compare ASM
names with a neighbour and special case first node in a chain.

From-SVN: r269461

5 years agoFix comment
Jason Merrill [Thu, 7 Mar 2019 15:16:04 +0000 (10:16 -0500)]
Fix comment

From-SVN: r269460

5 years agoPR c++/80916 - spurious "static but not defined" warning.
Jason Merrill [Thu, 7 Mar 2019 15:10:22 +0000 (10:10 -0500)]
PR c++/80916 - spurious "static but not defined" warning.

Nothing can refer to an internal decl with no definition, so we shouldn't
treat such a decl as a possible devirtualization target.

* gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
for an internal symbol with DECL_EXTERNAL.

From-SVN: r269459

5 years agore PR tree-optimization/89618 (Inner loop won't vectorize unless dummy statement...
Richard Biener [Thu, 7 Mar 2019 14:53:37 +0000 (14:53 +0000)]
re PR tree-optimization/89618 (Inner loop won't vectorize unless dummy statement is included)

2019-04-07  Richard Biener  <rguenther@suse.de>

PR middle-end/89618
* cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
* tree-inline.c (copy_loops): Simplify.

* gcc.target/i386/pr89618.c: New testcase.

From-SVN: r269458

5 years agoFix new test to run as well as compile
Jonathan Wakely [Thu, 7 Mar 2019 14:35:22 +0000 (14:35 +0000)]
Fix new test to run as well as compile

* testsuite/20_util/function_objects/bind_front/1.cc: Change from
compile test to run. Fix typo.

From-SVN: r269457

5 years agoUpdate C++20 status table in libstdc++ manual
Jonathan Wakely [Thu, 7 Mar 2019 14:25:05 +0000 (14:25 +0000)]
Update C++20 status table in libstdc++ manual

* doc/xml/manual/status_cxx2020.xml: Update C++20 status.
* doc/html/*: Regenerate.

From-SVN: r269456

5 years agoP0356R5 Simplified partial function application
Jonathan Wakely [Thu, 7 Mar 2019 14:15:53 +0000 (14:15 +0000)]
P0356R5 Simplified partial function application

* include/std/functional [C++20] (_Bind_front, _Bind_front_t): Define
helpers for bind_front.
(bind_front, __cpp_lib_bind_front): Define.
* testsuite/20_util/function_objects/bind_front/1.cc: New test.

From-SVN: r269455

5 years agoRevert function removal made in r264561.
Martin Liska [Thu, 7 Mar 2019 13:47:53 +0000 (14:47 +0100)]
Revert function removal made in r264561.

2019-03-07  Martin Liska  <mliska@suse.cz>

* dwarf2out.c (add_AT_vms_delta): Revert function removal.

From-SVN: r269454

5 years agore PR tree-optimization/89595 (DOM miscompiles code)
Richard Biener [Thu, 7 Mar 2019 12:46:44 +0000 (12:46 +0000)]
re PR tree-optimization/89595 (DOM miscompiles code)

2019-03-07  Richard Biener  <rguenther@suse.de>

PR tree-optimization/89595
* tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
stmt iterator as reference, take boolean output parameter to
indicate whether the stmt was removed and thus the iterator
already advanced.
(dom_opt_dom_walker::before_dom_children): Re-iterate over
stmts created by folding.

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

From-SVN: r269453

5 years agore PR c++/89585 (GCC 8.3: asm volatile no longer accepted at file scope)
Jakub Jelinek [Thu, 7 Mar 2019 08:18:36 +0000 (09:18 +0100)]
re PR c++/89585 (GCC 8.3: asm volatile no longer accepted at file scope)

PR c++/89585
* doc/extend.texi (Basic Asm): Document qualifiers are not allowed
at toplevel.

* parser.c (cp_parser_asm_definition): Parse asm qualifiers even
at toplevel, but diagnose them.

* g++.dg/asm-qual-3.C: Adjust expected diagnostics.

From-SVN: r269451

5 years agore PR go/89227 (gotools test cmd/go fails with link error "call lacks nop, can't...
Ian Lance Taylor [Thu, 7 Mar 2019 00:53:41 +0000 (00:53 +0000)]
re PR go/89227 (gotools test cmd/go fails with link error "call lacks nop, can't restore toc; recompile with -fPIC")

PR go/89227
* go-gcc.cc (Gcc_backend::function): Set TREE_PUBLIC for an
only-inline function.

From-SVN: r269449

5 years agoDaily bump.
GCC Administrator [Thu, 7 Mar 2019 00:16:32 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r269448

5 years agore PR fortran/71203 (ICE in add_init_expr_to_sym, at fortran/decl.c:1512 and :1564)
Harald Anlauf [Wed, 6 Mar 2019 21:06:35 +0000 (21:06 +0000)]
re PR fortran/71203 (ICE in add_init_expr_to_sym, at fortran/decl.c:1512 and :1564)

2019-03-06  Harald Anlauf  <anlauf@gmx.de>

PR fortran/71203
* expr.c (simplify_const_ref): Avoid null pointer dereference.

PR fortran/71203
* gfortran.dg/substr_8.f90: New test.

From-SVN: r269444

5 years agocompiler: emit underlying constant in array_type length export
Ian Lance Taylor [Wed, 6 Mar 2019 20:40:32 +0000 (20:40 +0000)]
compiler: emit underlying constant in array_type length export

    In Array_type::do_export, when emitting a concrete array length,
    evaluate the length expression to an integer constant and emit that
    constant, instead of calling the more general method for emitting
    expressions. This is to avoid the possibility that we will need
    to emit a conversion, which could confuse the gccgoimporter.

    Fixes golang/go#30628.

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

From-SVN: r269443

5 years agoPR c++/89381 - implicit copy and using-declaration.
Jason Merrill [Wed, 6 Mar 2019 20:28:47 +0000 (15:28 -0500)]
PR c++/89381 - implicit copy and using-declaration.

Here the used base<int>::operator= gets into the list of foo's bindings for
operator=, but it shouldn't make the copy ctor deleted.

* class.c (classtype_has_move_assign_or_move_ctor_p): Don't consider
op= brought in by a using-declaration.

From-SVN: r269442

5 years agore PR c++/87148 (backward compatibility issue to take char [] as incomplete type)
Jakub Jelinek [Wed, 6 Mar 2019 18:46:32 +0000 (19:46 +0100)]
re PR c++/87148 (backward compatibility issue  to take char [] as incomplete type)

PR c++/87148
* init.c (build_value_init_noctor): Ignore flexible array members.

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

From-SVN: r269434

5 years agoPR c++/89576 - if constexpr of lambda capture.
Jason Merrill [Wed, 6 Mar 2019 18:39:24 +0000 (13:39 -0500)]
PR c++/89576 - if constexpr of lambda capture.

Now that we're doing implicit lambda capture in templates, we see x here as
the lambda capture.  maybe_convert_cond was doing nothing in a template, so
we never called mark_rvalue_use on x.  As part of the broad move toward
doing more processing of non-dependent expressions, let's do this
conversion.

* semantics.c (maybe_convert_cond): Do convert a non-dependent
condition in a template.
* typeck.c (condition_conversion): Handle being called in a
template.

From-SVN: r269433

5 years agoencoding.c (DFmode): #undef before #define.
Uros Bizjak [Wed, 6 Mar 2019 15:49:13 +0000 (16:49 +0100)]
encoding.c (DFmode): #undef before #define.

* encoding.c (DFmode): #undef before #define.

From-SVN: r269429

5 years agore PR rtl-optimization/88845 (ICE in lra_set_insn_recog_data, at lra.c:1010)
Peter Bergner [Wed, 6 Mar 2019 15:36:43 +0000 (15:36 +0000)]
re PR rtl-optimization/88845 (ICE in lra_set_insn_recog_data, at lra.c:1010)

gcc/
PR rtl-optimization/88845
* config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
LRA.
* lra.c (remove_scratches_1): New function.
(remove_scratches): Use it.
(lra_emit_move): Likewise.

gcc/testsuite/
PR rtl-optimization/88845
* gcc.target/powerpc/pr88845.c: New test.

From-SVN: r269428

5 years agoPR c++/87378 - bogus -Wredundant-move warning.
Marek Polacek [Wed, 6 Mar 2019 15:34:50 +0000 (15:34 +0000)]
PR c++/87378 - bogus -Wredundant-move warning.

* typeck.c (maybe_warn_pessimizing_move): See if the maybe-rvalue
overload resolution would actually succeed.

* g++.dg/cpp0x/Wredundant-move1.C (fn4): Drop dg-warning.
* g++.dg/cpp0x/Wredundant-move7.C: New test.

From-SVN: r269427

5 years agoAdd feature test macro for bounded array traits
Jonathan Wakely [Wed, 6 Mar 2019 15:31:06 +0000 (15:31 +0000)]
Add feature test macro for bounded array traits

* include/std/type_traits (__cpp_lib_bounded_array_traits): Define.
* include/std/version (__cpp_lib_bounded_array_traits): Likewise.
* testsuite/20_util/is_bounded_array/value.cc: Check for macro.
* testsuite/20_util/is_unbounded_array/value.cc: Likewise.

From-SVN: r269426

5 years agomksysinfo: actually use modified Statfs_t value
Ian Lance Taylor [Wed, 6 Mar 2019 14:19:56 +0000 (14:19 +0000)]
mksysinfo: actually use modified Statfs_t value

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

From-SVN: r269424

5 years agoPR libstdc++/86655 - std::assoc_legendre should not constrain
Edward Smith-Rowland [Wed, 6 Mar 2019 13:38:32 +0000 (13:38 +0000)]
PR libstdc++/86655 - std::assoc_legendre should not constrain

2019-03-06  Edward Smith-Rowland  <3dw4rd@verizon.net>

PR libstdc++/86655 - std::assoc_legendre should not constrain
the value of m (or x).
* include/tr1/legendre_function.tcc (__assoc_legendre_p,
__sph_legendre): If degree > order Don't throw, return 0.
(__legendre_p, __assoc_legendre_p): Don't constrain x either.
* testsuite/special_functions/02_assoc_legendre/pr86655.cc: New test.
* testsuite/special_functions/20_sph_legendre/pr86655.cc: New test.
* testsuite/tr1/5_numerical_facilities/special_functions/
02_assoc_legendre/pr86655.cc: New test.
* testsuite/tr1/5_numerical_facilities/special_functions/
22_sph_legendre/pr86655.cc: New test.

From-SVN: r269423

5 years agoRewrite variant, also PR libstdc++/85517
Ville Voutilainen [Wed, 6 Mar 2019 12:56:05 +0000 (14:56 +0200)]
Rewrite variant, also PR libstdc++/85517

* include/std/variant (__do_visit): New.
(__variant_cast): Likewise.
(__variant_cookie): Likewise.
(__erased_*): Remove.
(_Variant_storage::_S_vtable): Likewise.
(_Variant_storage::__M_reset_impl): Adjust to use __do_visit.
(_Variant_storage::__M_reset): Adjust.
(__variant_construct): New.
(_Copy_ctor_base(const _Copy_ctor_base&)): Adjust to use
__variant_construct.
(_Move_ctor_base(_Move_ctor_base&&)): Likewise.
(_Move_ctor_base::__M_destructive_copy): New.
(_Move_ctor_base::__M_destructive_move): Adjust to use
__variant_construct.
(_Copy_assign_base::operator=): Adjust to use __do_visit.
(_Copy_assign_alias): Adjust to check both copy assignment
and copy construction for triviality.
(_Move_assign_base::operator=): Adjust to use __do_visit.
(_Multi_array): Add support for visitors that accept and return
a __variant_cookie.
(__gen_vtable_impl::_S_apply_all_alts): Likewise.
(__gen_vtable_impl::_S_apply_single_alt): Likewise.
(__gen_vtable_impl::__element_by_index_or_cookie): New. Generate
a __variant_cookie temporary for a variant that is valueless and..
(__gen_vtable_impl::__visit_invoke): ..adjust here.
(__gen_vtable::_Array_type): Conditionally make space for
the __variant_cookie visitor case.
(__variant_construct_by_index): New.
(get_if): Adjust to use std::addressof.
(relops): Adjust to use __do_visit.
(variant): Add __variant_cast and __variant_construct_by_index
as friends.
(variant::emplace): Use _M_reset() and __variant_construct_by_index
instead of self-destruction.
(variant::swap): Adjust to use __do_visit.
(visit): Reimplement in terms of __do_visit.
(__variant_hash_call_base_impl::operator()): Adjust to use __do_visit.
* testsuite/20_util/variant/compile.cc: Adjust.
* testsuite/20_util/variant/run.cc: Likewise.

From-SVN: r269422

5 years agoAdd L suffix to __cpp_lib_char8_t value
Jonathan Wakely [Wed, 6 Mar 2019 12:13:19 +0000 (12:13 +0000)]
Add L suffix to __cpp_lib_char8_t value

* include/bits/c++config.h (_cpp_lib_char8_t): Add L suffix to
constant.
* testsuite/experimental/feat-char8_t.cc: Likewise.

From-SVN: r269421

5 years agoAdd C++20 Traits for [Un]bounded Arrays (P1357R1)
Jonathan Wakely [Wed, 6 Mar 2019 12:13:14 +0000 (12:13 +0000)]
Add C++20 Traits for [Un]bounded Arrays (P1357R1)

 * include/std/type_traits [C++20] (is_bounded_array)
 (is_unbounded_array, is_bounded_array_v, is_unbounded_array_v):
 Define.
 * testsuite/20_util/is_bounded_array/requirements/
 explicit_instantiation.cc: New test.
 * testsuite/20_util/is_bounded_array/requirements/typedefs.cc: New
 test.
 * testsuite/20_util/is_bounded_array/value.cc: New test.
 * testsuite/20_util/is_unbounded_array/requirements/
 explicit_instantiation.cc: New test.
 * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc: New
 * test.
 * testsuite/20_util/is_unbounded_array/value.cc: New test.

From-SVN: r269420

5 years agoCharry pick libsanitizer r355488 (PR sanitizer/88684).
Martin Liska [Wed, 6 Mar 2019 11:46:15 +0000 (12:46 +0100)]
Charry pick libsanitizer r355488 (PR sanitizer/88684).

2019-03-06  Martin Liska  <mliska@suse.cz>

PR sanitizer/88684
* sanitizer_common/sanitizer_platform.h (defined): Cherry pick.
(SANITIZER_NON_UNIQUE_TYPEINFO): Likewise.
* ubsan/ubsan_type_hash_itanium.cc (isDerivedFromAtOffset):
Likewise.

From-SVN: r269419

5 years agoConstexpr in std::pointer_traits (P1006R1)
Jonathan Wakely [Wed, 6 Mar 2019 11:32:42 +0000 (11:32 +0000)]
Constexpr in std::pointer_traits (P1006R1)

* include/bits/ptr_traits.h [C++20] (pointer_traits<T*>::pointer_to):
Add constexpr.
* testsuite/20_util/pointer_traits/pointer_to_constexpr.cc: New test.

From-SVN: r269418

5 years ago[ARC] Fix logic set UNALIGNED_ACCESS
Claudiu Zissulescu [Wed, 6 Mar 2019 10:45:51 +0000 (11:45 +0100)]
[ARC] Fix logic set UNALIGNED_ACCESS

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
unaligned_access variable.
* config/arc/arc.c (arc_override_options): Set unaligned access
default on for HS CPUs.
* config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.

From-SVN: r269417

5 years agore PR middle-end/89551 (Test case gcc.dg/uninit-pred-8_b.c fails after r269302)
Richard Biener [Wed, 6 Mar 2019 10:13:08 +0000 (10:13 +0000)]
re PR middle-end/89551 (Test case gcc.dg/uninit-pred-8_b.c fails after r269302)

2019-03-06  Richard Biener  <rguenther@suse.de>

PR testsuite/89551
* gcc.dg/uninit-pred-8_b.c: Force logical-op-non-short-circuit
the way that makes the testcase PASS.

From-SVN: r269416

5 years agoUse --coverage instead of -fprofile-arcs -ftest-coverage in documentation (PR gcov...
Martin Liska [Wed, 6 Mar 2019 10:01:16 +0000 (11:01 +0100)]
Use --coverage instead of -fprofile-arcs -ftest-coverage in documentation (PR gcov-profile/89577).

2019-03-06  Martin Liska  <mliska@suse.cz>

PR gcov-profile/89577
* doc/gcov.texi: Prefer to use --coverage.
* doc/sourcebuild.texi: Likewise.

From-SVN: r269415

5 years agoIgnore a param in check-params-in-docs.py
Martin Liska [Wed, 6 Mar 2019 10:00:37 +0000 (11:00 +0100)]
Ignore a param in check-params-in-docs.py

2019-03-06  Martin Liska  <mliska@suse.cz>

* check-params-in-docs.py: Ignore a param.

From-SVN: r269414

5 years agore PR go/89598 (go frontend fails to build against mpfr 2.4.2)
Ian Lance Taylor [Wed, 6 Mar 2019 05:02:16 +0000 (05:02 +0000)]
re PR go/89598 (go frontend fails to build against mpfr 2.4.2)

PR go/89598
    compiler: use GMP_RNDN rather than MPFR_RNDN

    Missed one last time around.  This fixes the build with mpfr 2.4.2.

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

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

From-SVN: r269411

5 years agoDaily bump.
GCC Administrator [Wed, 6 Mar 2019 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r269409

5 years agoruntime: enable precise GC checks when using stack maps
Ian Lance Taylor [Tue, 5 Mar 2019 23:05:38 +0000 (23:05 +0000)]
runtime: enable precise GC checks when using stack maps

    In the runtime there are bad pointer checks that currently don't
    work with the concervative collector. With stack maps, the GC is
    precise and the checks should work. Enable them.

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

From-SVN: r269406

5 years agore PR libfortran/89593 (warning "passing argument 3 of ‘_gfortran_caf_{get,send}_by_r...
Jakub Jelinek [Tue, 5 Mar 2019 22:41:39 +0000 (23:41 +0100)]
re PR libfortran/89593 (warning "passing argument 3 of ‘_gfortran_caf_{get,send}_by_ref’ from incompatible pointer type" when building libgfortran)

PR libgfortran/89593
* caf/single.c (_gfortran_caf_sendget_by_ref): Cast &temp to
gfc_descriptor_t * to avoid warning.

From-SVN: r269405

5 years agocmd/go: pass -X64 to ar on aix/ppc64
Ian Lance Taylor [Tue, 5 Mar 2019 22:40:21 +0000 (22:40 +0000)]
cmd/go: pass -X64 to ar on aix/ppc64

    On aix/ppc64, ar tool must always have -X64 argument if it aims to
    create 64 bits archives.

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

From-SVN: r269404

5 years agoPR c++/86485 - -Wmaybe-unused with empty class ?:
Jason Merrill [Tue, 5 Mar 2019 22:20:41 +0000 (17:20 -0500)]
PR c++/86485 - -Wmaybe-unused with empty class ?:

The problem in this testcase is that the front end expects an rvalue
COND_EXPR to initialize a single temporary from one of the arms.  But
because gimplify_cond_expr used MODIFY_EXPR, instead the arms would each
create their own temporary and then copy that into the common temporary.

So, let's use INIT_EXPR instead.

* gimplify.c (gimplify_cond_expr): Use INIT_EXPR.

From-SVN: r269403

5 years agore PR c++/86485 ("anonymous" maybe-uninitialized false positive with ternary operator)
Jason Merrill [Tue, 5 Mar 2019 22:17:13 +0000 (17:17 -0500)]
re PR c++/86485 ("anonymous" maybe-uninitialized false positive with ternary operator)

* class.c (is_really_empty_class): Add ignore_vptr parm.

While looking at PR86485, I noticed that many uses of is_really_empty_class
were overlooking that it returned true for a class with only a vptr;
initialization of such a class is not trivial.  Marek's P1064 patch fixed
one place in constexpr.c to also check for a vtable, but there are several
others that still don't.

This patch requires callers to explicitly choose which behavior they want.
Currently the uses in constexpr.c want to consider the vptr, and other uses
don't.

* class.c (is_really_empty_class): Add ignore_vptr parm.
(trivial_default_constructor_is_constexpr): Pass it.
* call.c (build_over_call): Pass it.
* constexpr.c (cxx_eval_constant_expression): Pass it instead of
checking TYPE_POLYMORPHIC_P.
(cxx_eval_component_reference, potential_constant_expression_1):
Pass it.
* cp-gimplify.c (simple_empty_class_p): Pass it.
* init.c (expand_aggr_init_1): Pass it.

From-SVN: r269402

5 years agosysinfo: add Flags to Statfs_t if not already there
Ian Lance Taylor [Tue, 5 Mar 2019 20:49:21 +0000 (20:49 +0000)]
sysinfo: add Flags to Statfs_t if not already there

    If there is no f_flags field in statfs_t then rename one of the
    f_spare fields, as happened in Linux kernel version 2.6.36.  This
    fixes the build on CentOS 5.11.  The CentOS kernel will hopefully not
    fill in the f_spare field, so the resulting flags will be zero.

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

From-SVN: r269401

5 years agore PR go/89598 (go frontend fails to build against mpfr 2.4.2)
Ian Lance Taylor [Tue, 5 Mar 2019 19:41:42 +0000 (19:41 +0000)]
re PR go/89598 (go frontend fails to build against mpfr 2.4.2)

PR go/89598
    compiler: use GMP_RNDN rather than MPFR_RNDN

    This fixes the build with mpfr 2.4.2.

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

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

From-SVN: r269399

5 years agoDefine midpoint and lerp functions for C++20 (P0811R3)
Jonathan Wakely [Tue, 5 Mar 2019 18:37:24 +0000 (18:37 +0000)]
Define midpoint and lerp functions for C++20 (P0811R3)

The implementation of midpoint used for integral types is due to Howard
Hinnant and avoids a branch for int and larger types (but not for chars
and shorts).

The midpoint and lerp functions for floating point types come straight
from the P0811R3 proposal, with no attempt at optimization.

* include/c_compatibility/math.h [C++20] (lerp): Add using
declaration.
* include/c_global/cmath [C++20] (__cpp_lib_interpolate): Define.
(__lerp): Define function template to implement lerp.
(lerp(float, float, float), lerp(double, double, double))
(lerp(long double, long double, long double)): Define for C++20.
* include/std/numeric [C++20] (__cpp_lib_interpolate): Define.
(midpoint(T, T), midpoint(T*, T*)): Define.
* include/std::version [C++20] (__cpp_lib_interpolate): Define.
* testsuite/26_numerics/lerp.cc: New test.
* testsuite/26_numerics/midpoint/floating.cc: New test.
* testsuite/26_numerics/midpoint/integral.cc: New test.
* testsuite/26_numerics/midpoint/pointer.cc: New test.

From-SVN: r269398

5 years agore PR target/89587 (gcc's rs6000 configuration unconditionally sets MULTIARCH_DIRNAME...
Jakub Jelinek [Tue, 5 Mar 2019 17:25:01 +0000 (18:25 +0100)]
re PR target/89587 (gcc's rs6000 configuration unconditionally sets MULTIARCH_DIRNAME, even when multiarch is disabled)

PR target/89587
* config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
if_multiarch.

From-SVN: r269396

5 years agodg-extract-results.py: Handle case where a WARNING happens with the first test of...
Christophe Lyon [Tue, 5 Mar 2019 16:29:19 +0000 (16:29 +0000)]
dg-extract-results.py: Handle case where a WARNING happens with the first test of a harness.

2019-03-05  Christophe Lyon  <christophe.lyon@linaro.org>

contrib/
* dg-extract-results.py: Handle case where a WARNING happens with
the first test of a harness.

From-SVN: r269394

5 years agodg-extract-results.sh: Fix order of WARNING and following test result.
Christophe Lyon [Tue, 5 Mar 2019 16:28:11 +0000 (16:28 +0000)]
dg-extract-results.sh: Fix order of WARNING and following test result.

2019-03-05  Christophe Lyon  <christophe.lyon@linaro.org>

contrib/
* dg-extract-results.sh: Fix order of WARNING and following test
result.

From-SVN: r269393

5 years agore PR middle-end/89590 (ICE in maybe_emit_free_warning)
Jakub Jelinek [Tue, 5 Mar 2019 16:22:16 +0000 (17:22 +0100)]
re PR middle-end/89590 (ICE in maybe_emit_free_warning)

PR middle-end/89590
* builtins.c (maybe_emit_free_warning): Punt if free doesn't have
exactly one argument.

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

From-SVN: r269392

5 years agore PR tree-optimization/89570 (ICE in prepare_cmp_insn, at optabs.c:4001)
Jakub Jelinek [Tue, 5 Mar 2019 15:05:07 +0000 (16:05 +0100)]
re PR tree-optimization/89570 (ICE in prepare_cmp_insn, at optabs.c:4001)

PR tree-optimization/89570
* match.pd (vec_cond into cond_op simplification): Don't use
get_conditional_internal_fn, use as_internal_fn (cond_op).

Co-Authored-By: Richard Sandiford <richard.sandiford@arm.com>
From-SVN: r269391

5 years ago[ARM] Fix PR89222
Wilco Dijkstra [Tue, 5 Mar 2019 15:04:01 +0000 (15:04 +0000)]
[ARM] Fix PR89222

The GCC optimizer can generate symbols with non-zero offset from simple
if-statements. Bit zero is used for the Arm/Thumb state bit, so relocations
with offsets fail if it changes bit zero and the relocation forces bit zero
to true.  The fix is to disable offsets on function pointer symbols.

    gcc/
PR target/89222
* config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
to decide when to split off a non-zero offset from a symbol.
* config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
in function symbols.

    testsuite/
PR target/89222
* gcc.target/arm/pr89222.c: Add new test.

From-SVN: r269390

5 years agore PR tree-optimization/89594 (ICE: Segmentation fault (in gsi_for_stmt(gimple*)))
Richard Biener [Tue, 5 Mar 2019 14:57:12 +0000 (14:57 +0000)]
re PR tree-optimization/89594 (ICE: Segmentation fault (in gsi_for_stmt(gimple*)))

2019-03-05  Richard Biener  <rguenther@suse.de>

PR tree-optimization/89594
* tree-if-conv.c (pass_if_conversion::execute): Handle
case where .LOOP_VECTORIZED_FUNCTION was removed.

* gcc.dg/pr89594.c: New testcase.

From-SVN: r269389

5 years agore PR tree-optimization/89487 (ICE in expand_expr_addr_expr_1, at expr.c:7993)
Jakub Jelinek [Tue, 5 Mar 2019 13:38:59 +0000 (14:38 +0100)]
re PR tree-optimization/89487 (ICE in expand_expr_addr_expr_1, at expr.c:7993)

PR tree-optimization/89487
* gcc.dg/tree-ssa/pr89487.c: Include ../pr87600.h.
(caml_interprete): Ifdef the whole body out if REG1 or REG2 macros
aren't defined.  Use REG1 instead of "%r15" and REG2 instead of
"%r14".

From-SVN: r269388

5 years agore PR bootstrap/89560 (ICE In function 'rtx_def* gen_vec_extract_lo_v64qi(rtx, rtx)')
Jakub Jelinek [Tue, 5 Mar 2019 09:03:50 +0000 (10:03 +0100)]
re PR bootstrap/89560 (ICE In function 'rtx_def* gen_vec_extract_lo_v64qi(rtx, rtx)')

PR bootstrap/89560
* fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
instead alloca it only when needed with the needed size.

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

From-SVN: r269386

5 years agore PR tree-optimization/89570 (ICE in prepare_cmp_insn, at optabs.c:4001)
Jakub Jelinek [Tue, 5 Mar 2019 08:44:21 +0000 (09:44 +0100)]
re PR tree-optimization/89570 (ICE in prepare_cmp_insn, at optabs.c:4001)

PR tree-optimization/89570
* match.pd (vec_cond into cond_op simplification): Guard with
vectorized_internal_fn_supported_p test and #if GIMPLE.

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

From-SVN: r269385

5 years agore PR tree-optimization/89566 (ICE on compilable C++ code: in gimple_call_arg, at...
Jakub Jelinek [Tue, 5 Mar 2019 08:43:16 +0000 (09:43 +0100)]
re PR tree-optimization/89566 (ICE on compilable C++ code: in gimple_call_arg, at gimple.h:3166)

PR tree-optimization/89566
* gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
Punt if get_user_idx_format succeeds, but idx_format argument is
not provided or doesn't have pointer type, or if idx_args is above
number of provided arguments.

* c-c++-common/pr89566.c: New test.

From-SVN: r269384

5 years agoDaily bump.
GCC Administrator [Tue, 5 Mar 2019 00:16:26 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r269381

5 years agore PR c++/84605 (internal compiler error: in xref_basetypes, at cp/decl.c:13818)
Paolo Carlini [Mon, 4 Mar 2019 23:49:23 +0000 (23:49 +0000)]
re PR c++/84605 (internal compiler error: in xref_basetypes, at cp/decl.c:13818)

/cp
2019-03-04  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84605
* parser.c (cp_parser_class_head): Reject TYPE_BEING_DEFINED too.

/testsuite
2019-03-04  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84605
* g++.dg/parse/crash69.C: New.

From-SVN: r269378