platform/upstream/gcc.git
5 years agoDaily bump.
GCC Administrator [Sun, 31 Mar 2019 00:16:29 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r270041

5 years agotestsuite/gdc.test: Merge upstream dmd 5dd3eccc3
Iain Buclaw [Sat, 30 Mar 2019 22:10:12 +0000 (22:10 +0000)]
testsuite/gdc.test: Merge upstream dmd 5dd3eccc3

The D2 testsuite script has been updated to handle EXTRA_SOURCES and
EXTRA_FILES settings being split across multiple lines, which is how
they appear in upstream.

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

gcc/testsuite/ChangeLog:

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

* gdc.test/gdc-test.exp (gdc-copy-extra): Append copied files to
cleanup_extra_files.
(dmd2dg): Copy additional files after test is processed.
(gdc-do-test): Remove all copied files after test.

From-SVN: r270038

5 years agore PR fortran/89841 (improper descriptor information passed to C)
Paul Thomas [Sat, 30 Mar 2019 15:39:00 +0000 (15:39 +0000)]
re PR fortran/89841 (improper descriptor information passed to C)

2019-03-30  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/89841
* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Use the formal
argument attributes rather than those of the actual argument.

PR fortran/89842
* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Call
'set_dtype_for_unallocated' for any type of arrayspec.

2019-03-30  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/89841
* gfortran.dg/ISO_Fortran_binding_1.f90: Change the interfaces
for c_deallocate, c_allocate and c_assumed_size so that the
attributes of the array arguments are correct and are typed.
* gfortran.dg/ISO_Fortran_binding_7.f90: New test.
* gfortran.dg/ISO_Fortran_binding_7.c: Additional source.

PR fortran/89842
* gfortran.dg/ISO_Fortran_binding_8.f90: New test.
* gfortran.dg/ISO_Fortran_binding_8.c: Additional source.

From-SVN: r270037

5 years agoPR c++/89744 - ICE with specialization of member class template.
Jason Merrill [Sat, 30 Mar 2019 15:23:37 +0000 (11:23 -0400)]
PR c++/89744 - ICE with specialization of member class template.

My fix five years ago for PR 60241 was incomplete: when we reassign implicit
instances of a partial instantiation of a member template to the explicit
specialization of that partial instantiation, we also need to adjust the
CLASSTYPE_TI_ARGS to match what we'd get when looking up that instance after
the explicit specialization.  We also need to do this when we later look up
the instance in a way that only finds the explicit specialization halfway
through lookup_template_class_1.

* pt.c (lookup_template_class_1): If the partial instantiation is
explicitly specialized, adjust.
(maybe_process_partial_specialization): Also adjust
CLASSTYPE_TI_ARGS.

From-SVN: r270036

5 years agore PR fortran/89866 ([F08] wrong-code problem with POINTER, INTENT(IN) argument)
Thomas Koenig [Sat, 30 Mar 2019 13:41:10 +0000 (13:41 +0000)]
re PR fortran/89866 ([F08] wrong-code problem with POINTER, INTENT(IN) argument)

2019-03-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/89866
* gfortran.dg/pointer_intent_8.f90: New test.

From-SVN: r270034

5 years ago* src/c++17/fs_ops.cc (fs::permissions): Use std::errc::not_supported.
Eric Botcazou [Sat, 30 Mar 2019 13:36:16 +0000 (13:36 +0000)]
* src/c++17/fs_ops.cc (fs::permissions): Use std::errc::not_supported.

From-SVN: r270033

5 years agore PR rtl-optimization/89862 (LTO bootstrap fails for ARM)
Kugan Vivekanandarajah [Sat, 30 Mar 2019 04:24:22 +0000 (04:24 +0000)]
re PR rtl-optimization/89862 (LTO bootstrap fails for ARM)

2019-03-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
    Eric Botcazou  <ebotcazou@adacore.com>

PR rtl-optimization/89862
* rtl.h (word_register_operation_p): Exclude CONST_INT from operations
that operates on the full registers for WORD_REGISTER_OPERATIONS
architectures.

Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
From-SVN: r270030

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

From-SVN: r270029

5 years agoRISC-V: Fix __riscv_compressed regression.
Jim Wilson [Fri, 29 Mar 2019 21:51:58 +0000 (21:51 +0000)]
RISC-V: Fix __riscv_compressed regression.

This was accidentally broken by the patch adding ELF attribute support.
The __riscv_compressed predefined macro is not being defined when the
target supports the C extension.  The fix adds testcases to verify that
all of the predefined macros are correct for various option combinations.

gcc/
* common/config/riscv/riscv-common.c (riscv_parse_arch_string):
Clear MASK_RVC and then set if C subset supported.

gcc/testsuite/
* gcc.target/riscv/predef-1.c: New.
* gcc.target/riscv/predef-2.c: New.
* gcc.target/riscv/predef-3.c: New.
* gcc.target/riscv/predef-4.c: New.
* gcc.target/riscv/predef-5.c: New.
* gcc.target/riscv/predef-6.c: New.
* gcc.target/riscv/predef-7.c: New.
* gcc.target/riscv/predef-8.c: New.

From-SVN: r270026

5 years agore PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times...
Jakub Jelinek [Fri, 29 Mar 2019 20:51:15 +0000 (21:51 +0100)]
re PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times \\\\), % 45)

PR rtl-optimization/89865
* gcc.target/i386/pr49095.c: Include in scan-assembler-times patterns
the first argument register, so that occassional spills/fills are
ignored.

From-SVN: r270025

5 years agore PR sanitizer/89869 (-fsanitize=undefined miscompilation)
Jakub Jelinek [Fri, 29 Mar 2019 20:10:19 +0000 (21:10 +0100)]
re PR sanitizer/89869 (-fsanitize=undefined miscompilation)

PR sanitizer/89869
* typeck.c: Include gimplify.h.
(cp_build_modify_expr) <case COND_EXPR>: Unshare rhs before using it
for second time.  Formatting fixes.

* g++.dg/ubsan/vptr-14.C: New test.

From-SVN: r270024

5 years agore PR c/89872 (GCC does not generate read access to volatile compound literal)
Jakub Jelinek [Fri, 29 Mar 2019 19:32:20 +0000 (20:32 +0100)]
re PR c/89872 (GCC does not generate read access to volatile compound literal)

PR c/89872
* gimplify.c (gimplify_compound_literal_expr): Don't optimize a
non-addressable complit into its initializer if it is volatile.

* gcc.dg/tree-ssa/pr89872.c: New test.

From-SVN: r270023

5 years agoopts-common.c (integral_argument): Set errno properly in one case.
Roman Zhuykov [Fri, 29 Mar 2019 18:44:01 +0000 (18:44 +0000)]
opts-common.c (integral_argument): Set errno properly in one case.

    * opts-common.c (integral_argument): Set errno properly in one case.

    * gcc.dg/diag-sanity.c: New test.

From-SVN: r270022

5 years agoPR c++/89876 - ICE with deprecated conversion.
Marek Polacek [Fri, 29 Mar 2019 18:40:31 +0000 (18:40 +0000)]
PR c++/89876 - ICE with deprecated conversion.

* call.c (convert_like_real): Only give warnings with tf_warning.

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

From-SVN: r270021

5 years agore PR c++/89871 (Wall + designated initializers)
Marek Polacek [Fri, 29 Mar 2019 15:24:00 +0000 (15:24 +0000)]
re PR c++/89871 (Wall + designated initializers)

PR c++/89871
* g++.dg/cpp2a/desig14.C: New test.

From-SVN: r270019

5 years agoRemove -Wchkp from documentation.
Martin Liska [Fri, 29 Mar 2019 14:53:12 +0000 (15:53 +0100)]
Remove -Wchkp from documentation.

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

* doc/invoke.texi: Remove -Wchkp from documentation.

From-SVN: r270017

5 years agoDump -fdbg-cnt limit reach also to stderr stream.
Martin Liska [Fri, 29 Mar 2019 11:45:56 +0000 (12:45 +0100)]
Dump -fdbg-cnt limit reach also to stderr stream.

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

* dbgcnt.c (print_limit_reach): New function.
(dbg_cnt): Use it.
2019-03-29  Martin Liska  <mliska@suse.cz>

* gcc.dg/ipa/ipa-icf-39.c: Prine '***dbgcnt' output.
* gcc.dg/pr68766.c: Likewise.

From-SVN: r270015

5 years agoFix multiple values for -fdbg-cnt.
Martin Liska [Fri, 29 Mar 2019 11:45:39 +0000 (12:45 +0100)]
Fix multiple values for -fdbg-cnt.

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

* dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
(dbg_cnt_process_opt): Parse first tokens aas
dbg_cnt_process_single_pair is also using strtok.

From-SVN: r270014

5 years agore PR rtl-optimization/87485 (Compile time hog w/ -O2 -fschedule-insns -fno-guess...
Jakub Jelinek [Fri, 29 Mar 2019 11:42:51 +0000 (12:42 +0100)]
re PR rtl-optimization/87485 (Compile time hog w/ -O2 -fschedule-insns -fno-guess-branch-probability -fno-isolate-erroneous-paths-dereference -fno-omit-frame-pointer -fno-split-wide-types -fno-tree-ccp -fno-tree-sra)

PR rtl-optimization/87485
* function.c (expand_function_end): Move stack_protect_epilogue
before loading of return value into hard register(s).

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

From-SVN: r270013

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

From-SVN: r270012

5 years agore PR middle-end/89621 (ICE with allocatable character and openmp)
Jakub Jelinek [Thu, 28 Mar 2019 22:33:29 +0000 (23:33 +0100)]
re PR middle-end/89621 (ICE with allocatable character and openmp)

PR middle-end/89621
* tree-inline.h (struct copy_body_data): Add
dont_remap_vla_if_no_change flag.
* tree-inline.c (remap_type_3, remap_type_2): New functions.
(remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
and remap_type_2 returns false.
* omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
only from where it is copied to nested contexts.

* gfortran.dg/gomp/pr89621.f90: New test.

From-SVN: r270009

5 years agoPR c++/66548 - Invalid class member access expression in decltype sometimes
Martin Sebor [Thu, 28 Mar 2019 21:32:11 +0000 (21:32 +0000)]
PR c++/66548 - Invalid class member access expression in decltype sometimes

PR c++/66548 - Invalid class member access expression in decltype sometimes
accepted

gcc/testsuite/ChangeLog:
* g++.dg/cpp0x/decltype-pr66548.C: New test.

From-SVN: r270007

5 years agoPR c++/81506 - Invalid declaration with decltype accepted
Martin Sebor [Thu, 28 Mar 2019 21:20:18 +0000 (21:20 +0000)]
PR c++/81506 - Invalid declaration with decltype accepted

testsuite/ChangeLog:
* g++.dg/cpp0x/decltype-pr81506.C: New test.

From-SVN: r270006

5 years agoPR c++/89612 - ICE with member friend template with noexcept.
Marek Polacek [Thu, 28 Mar 2019 20:24:48 +0000 (20:24 +0000)]
PR c++/89612 - ICE with member friend template with noexcept.

* pt.c (maybe_instantiate_noexcept): For function templates, use their
template result (function decl).  Don't set up local specializations.
Temporarily turn on processing_template_decl.  Update the template type
too.

* g++.dg/cpp0x/noexcept38.C: New test.
* g++.dg/cpp0x/noexcept39.C: New test.
* g++.dg/cpp1z/noexcept-type21.C: New test.

From-SVN: r270005

5 years agore PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times...
Uros Bizjak [Thu, 28 Mar 2019 19:33:22 +0000 (20:33 +0100)]
re PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times \\\\), % 45)

PR target/89865
* config/i386/i386.md (RMW operation with LEA peephole):
Use LEAMODE mode attribute instead of SWI mode iterator for
LEA pattern.

From-SVN: r270004

5 years agore PR target/89848 (ICE: in convert_op, at config/i386/i386.c:2099 with -O2 -msse2...
Uros Bizjak [Thu, 28 Mar 2019 19:15:58 +0000 (20:15 +0100)]
re PR target/89848 (ICE: in convert_op, at config/i386/i386.c:2099 with -O2 -msse2 -mtune=pentium3m)

PR target/89848
* config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
Also process XEXP (src, 0) of a shift insn.

testsuite/ChangeLog:

PR target/89848
* gcc.target/i386/pr89848.c: New test.

From-SVN: r270003

5 years agoPR c++/89836 - bool constant expression and explicit conversions.
Marek Polacek [Thu, 28 Mar 2019 18:23:18 +0000 (18:23 +0000)]
PR c++/89836 - bool constant expression and explicit conversions.

* call.c (build_converted_constant_expr_internal): New function,
renamed from...
(build_converted_constant_expr): ...this.  New.
(build_converted_constant_bool_expr): New.
* cp-tree.h (build_converted_constant_bool_expr): Declare.
* decl.c (build_explicit_specifier): Call
build_converted_constant_bool_expr.

* g++.dg/cpp2a/explicit15.C: New test.

From-SVN: r270002

5 years agore PR c/89812 (incorrect maximum in error: requested alignment ‘536870912’ exceeds...
Jakub Jelinek [Thu, 28 Mar 2019 17:14:05 +0000 (18:14 +0100)]
re PR c/89812 (incorrect maximum in error: requested alignment ‘536870912’ exceeds maximum 2147483648)

PR c/89812
* gcc.dg/attr-aligned-3.c: Limit the test to known ELF targets
other than AVR.  Add dg-options "".

From-SVN: r270001

5 years agoDon't revisit a variant we are already visiting.
Ville Voutilainen [Thu, 28 Mar 2019 16:18:49 +0000 (18:18 +0200)]
Don't revisit a variant we are already visiting.

* include/std/variant (__variant_construct_single): New.
(__variant_construct): Use it.
(_M_destructive_move): Likewise.
(_M_destructive_copy): Likewise.
(_Copy_assign_base::operator=): Adjust.
(_Move_assign_base::operator=): Likewise.
(swap): Likewise.

From-SVN: r269996

5 years agore PR c++/89785 (Incorrect "not a constant expression" error with switch statement...
Jakub Jelinek [Thu, 28 Mar 2019 14:47:47 +0000 (15:47 +0100)]
re PR c++/89785 (Incorrect "not a constant expression" error with switch statement that returns)

PR c++/89785
* constexpr.c (struct check_for_return_continue_data): New type.
(check_for_return_continue): New function.
(potential_constant_expression_1) <case SWITCH_STMT>: Walk
SWITCH_STMT_BODY to find RETURN_EXPRs or CONTINUE_STMTs not nested
in loop bodies and set *jump_target to that if found.

* g++.dg/cpp1y/constexpr-89785-1.C: New test.
* g++.dg/cpp1y/constexpr-89785-2.C: New test.

From-SVN: r269995

5 years agooptinfo-emit-json.cc: don't call get_fnname_from_decl (PR middle-end/89725)
David Malcolm [Thu, 28 Mar 2019 14:40:56 +0000 (14:40 +0000)]
optinfo-emit-json.cc: don't call get_fnname_from_decl (PR middle-end/89725)

optrecord_json_writer::optinfo_to_json can in theory be called from any
optimization pass, but currently uses get_fnname_from_decl, which
is RTL-specific.

In that PR, Jakub suggested using either DECL_ASSEMBLER_NAME or the
"printable name" (via current_function_name).

This patch makes it use DECL_ASSEMBLER_NAME.

gcc/ChangeLog:
PR middle-end/89725
* optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.

From-SVN: r269994

5 years agoregcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P test.
Jakub Jelinek [Thu, 28 Mar 2019 14:20:10 +0000 (15:20 +0100)]
regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P test.

* regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
test.
(cprop_hardreg_bb, cprop_hardreg_debug): New functions.
(pass_cprop_hardreg::execute): Use those.  Don't repeat bb processing
immediately after first one with df_analyze in between, but rather
process all bbs, queueing ones that need second pass in a worklist,
df_analyze, process queued debug insn changes and if second pass is
needed, process bbs from worklist, df_analyze, process queued debug
insns again.

From-SVN: r269992

5 years agortl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P or CALL_P instead of...
Jakub Jelinek [Thu, 28 Mar 2019 14:07:40 +0000 (15:07 +0100)]
rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P or CALL_P instead of INSN_P && !DEBUG_INSN_P.

* rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
or CALL_P instead of INSN_P && !DEBUG_INSN_P.
(INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.

From-SVN: r269991

5 years agoPR c/79022 fix mismatch parameter order in declaratio
Jonathan Wakely [Thu, 28 Mar 2019 13:42:48 +0000 (13:42 +0000)]
PR c/79022 fix mismatch parameter order in declaratio

The declaration of create_nested_ptr_option in the header has the 'from'
and 'to' parameters in the opposite order from the definition in
gengtype.c:

  /* Return an options structure for a "nested_ptr" option.  */
  options_p
  create_nested_ptr_option (options_p next, type_p t,
                            const char *to, const char *from)

and the only caller in gengtype-parse.c:

  return create_nested_ptr_option (prev, ty, to, from);

This patch swaps the parameter names in the declaration.

PR c/79022
* gengtype.h (create_nested_ptr_option): Fix parameter names to match
definition.

From-SVN: r269990

5 years agoRevert r254150 (PR bootstrap/89829).
Martin Liska [Thu, 28 Mar 2019 08:44:44 +0000 (09:44 +0100)]
Revert r254150 (PR bootstrap/89829).

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

PR bootstrap/89829
* Makefile.in: Revert r254150.
* Makefile.tpl: Likewise.

From-SVN: r269985

5 years agoMAINTAINERS (Various Maintainers): Remove myself from dfp.c and related, and libdecnu...
Ben Elliston [Thu, 28 Mar 2019 06:55:57 +0000 (17:55 +1100)]
MAINTAINERS (Various Maintainers): Remove myself from dfp.c and related, and libdecnumber.

* MAINTAINERS (Various Maintainers): Remove myself from dfp.c and
related, and libdecnumber.

From-SVN: r269984

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

From-SVN: r269983

5 years agore PR fortran/85537 ([F08] Invalid memory reference at runtime when calling subroutin...
Janus Weil [Wed, 27 Mar 2019 22:40:22 +0000 (23:40 +0100)]
re PR fortran/85537 ([F08] Invalid memory reference at runtime when calling subroutine through procedure pointer)

fix PR 85537

2019-03-27  Janus Weil  <janus@gcc.gnu.org>

PR fortran/85537
* expr.c (gfc_check_assign_symbol): Reject internal and dummy procedures
in procedure pointer initialization.

2019-03-27  Janus Weil  <janus@gcc.gnu.org>

PR fortran/85537
* gfortran.dg/dummy_procedure_11.f90: Fix test case.
* gfortran.dg/pointer_init_11.f90: New test case.

From-SVN: r269980

5 years agore PR target/85667 (ms_abi rules aren't followed when returning short structs with...
Mateusz B [Wed, 27 Mar 2019 21:17:48 +0000 (22:17 +0100)]
re PR target/85667 (ms_abi rules aren't followed when returning short structs with float values)

PR target/85667
* config/i386/i386.c (ix86_function_value_1): Call the newly added
function for 32-bit MS_ABI.
(function_value_ms_32): New function.

testsuite/ChangeLog:

PR target/85667
* gcc.target/i386/pr85667-5.c: New testcase.
* gcc.target/i386/pr85667-6.c: New testcase.

From-SVN: r269979

5 years agopr81740-2.c: Require vect_hw_misalign.
Bill Schmidt [Wed, 27 Mar 2019 20:39:22 +0000 (20:39 +0000)]
pr81740-2.c: Require vect_hw_misalign.

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

* gcc.dg/vect/pr81740-2.c: Require vect_hw_misalign.

From-SVN: r269978

5 years agoPR c++/89831 - error with qualified-id in const member function.
Jason Merrill [Wed, 27 Mar 2019 20:39:19 +0000 (16:39 -0400)]
PR c++/89831 - error with qualified-id in const member function.

Since the fix for 15272 we were remembering the wrong function to use at
instantiation time, because the type of the SCOPE_REF didn't reflect the
cv-quals of 'this'.  Conveniently, we can fix this by simplifying the code.

* semantics.c (finish_non_static_data_member): Use object cv-quals
in scoped case, too.

From-SVN: r269977

5 years agoFix ChangeLog
Jason Merrill [Wed, 27 Mar 2019 19:26:17 +0000 (15:26 -0400)]
Fix ChangeLog

From-SVN: r269976

5 years agoPR c++/89241 - ICE with lambda in template parameter list.
Jason Merrill [Wed, 27 Mar 2019 18:39:20 +0000 (14:39 -0400)]
PR c++/89241 - ICE with lambda in template parameter list.

We were getting confused by a lambda in template definition context that
isn't actually in the scope of any templated entity.  Fixed by telling
type_dependent_expression_p that such a lambda is type-dependent even if we
can't tell that from its closure type.  I've also restored the error for
defining a non-lambda class in a default template argument, and for a lambda
befor C++20.

* parser.c (cp_parser_lambda_expression): Also reject a lambda in a
template parameter list before C++20.
* pt.c (type_dependent_expression_p): True for LAMBDA_EXPR.
* semantics.c (begin_class_definition): Restore error about defining
non-lambda class in template parm list.

From-SVN: r269972

5 years agoteam.c (gomp_team_start): Initialize pool->threads[0].
Kevin Buettner [Wed, 27 Mar 2019 18:30:44 +0000 (18:30 +0000)]
team.c (gomp_team_start): Initialize pool->threads[0].

libgomp/ChangeLog:

* team.c (gomp_team_start): Initialize pool->threads[0].

From-SVN: r269971

5 years agoFix scc clobber in movdi_symbol.
Andrew Stubbs [Wed, 27 Mar 2019 17:06:26 +0000 (17:06 +0000)]
Fix scc clobber in movdi_symbol.

2019-03-27  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/gcn/gcn.md (CC_SAVE_REG): New constant.
(movdi): Call gen_movdi_symbol_save_scc.
(gen_movdi_symbol_save_scc): New insn and split.

From-SVN: r269970

5 years agore PR rtl-optimization/89313 (ICE in process_alt_operands, at lra-constraints.c:2962)
Peter Bergner [Wed, 27 Mar 2019 16:59:15 +0000 (16:59 +0000)]
re PR rtl-optimization/89313 (ICE in process_alt_operands, at lra-constraints.c:2962)

gcc/
PR rtl-optimization/89313
* function.c (matching_constraint_num): New static function.
(match_asm_constraints_1): Use it.  Fixup white space and comment.
Don't replace inputs with non-matching constraints which conflict
with early clobber outputs.

gcc/testsuite/
PR rtl-optimization/89313
* gcc.dg/pr89313.c: New test.

From-SVN: r269969

5 years agore PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c ...
Jeff Law [Wed, 27 Mar 2019 16:18:06 +0000 (10:18 -0600)]
re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c   -O1 start with r265398)

PR rtl-optimization/87761
PR rtl-optimization/89826
* regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
slightly later.
(pass_cprop_hardreg::execute): Call df_analyze after adding the
note problem to get REG_DEAD/REG_UNUSED notes updated.

PR rtl-optimization/87761
PR rtl-optimization/89826
* gcc.c-torture/execute/pr89826.c: New test.

From-SVN: r269967

5 years agoPR c++/86932 - missed SFINAE with empty pack.
Jason Merrill [Wed, 27 Mar 2019 14:27:00 +0000 (10:27 -0400)]
PR c++/86932 - missed SFINAE with empty pack.

The issue here was that when processing the explicit template args in
fn_type_unification we added an empty argument pack for the parameter pack,
so we never tried to do any deduction for it, and therefore never looked at
its type.  We need that empty pack behavior for partial ordering, but we
don't want it here, so let's make it conditional on tf_partial.

* pt.c (coerce_template_parms): Don't add an empty pack if
tf_partial.
(fn_type_unification): Pass tf_partial to coerce_template_parms.

From-SVN: r269965

5 years ago20190327-1.c: New testcase.
Richard Biener [Wed, 27 Mar 2019 13:18:39 +0000 (13:18 +0000)]
20190327-1.c: New testcase.

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

* gcc.dg/torture/20190327-1.c: New testcase.

From-SVN: r269964

5 years agore PR fortran/88247 (ICE in get_array_ctor_var_strlen, at fortran/trans-array.c:2068)
Paul Thomas [Wed, 27 Mar 2019 12:51:43 +0000 (12:51 +0000)]
re PR fortran/88247 (ICE in get_array_ctor_var_strlen, at fortran/trans-array.c:2068)

2019-03-27  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/88247
* expr.c (is_subref_array): Permit substrings to be detected
as subref arrays.
* trans-array.c (get_array_ctor_var_strlen): Obtain the length
of deferred length strings. Handle substrings with a NULL end
expression.
(trans_array_constructor): Remove an unnecessary blank line.
(gfc_conv_scalarized_array_ref): Skip to label 'done' if 'decl'
is a pointer array.
(get_array_charlen): If the expression is an array, convert the
first element of the constructor and use its string length. Get
a new charlen if necessary.
(gfc_conv_expr_descriptor): Call 'get_array_charlen' for array
constructor expressions. If the ss_info string length is
available, use that to set the span of character arrays.
* trans-expr.c (gfc_get_expr_charlen): Handle substrings
* trans-stmt.c (trans_associate_var): Set the pointer array
flag for variable targets and constant array constructors. Take
care not to reset the string length or the span in the case of
expressions that are not converted as direct by reference.

2019-03-27  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/88247
* gfortran.dg/associate_47.f90: New test.

From-SVN: r269962

5 years agore PR debug/89463 (debug information for iterator of an empty loop is gone (at -O3))
Richard Biener [Wed, 27 Mar 2019 09:31:53 +0000 (09:31 +0000)]
re PR debug/89463 (debug information for iterator of an empty loop is gone (at -O3))

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

PR tree-optimization/89463
* tree-ssa-dce.c (remove_dead_stmt): Take output vector to
queue edges to remove.
(eliminate_unnecessary_stmts): Remove dead PHIs alongside
dead stmts.  Delay edge removal until PHIs are removed to
make debug-stmt creation not confused by seemingly degenerate
PHIs.

* gcc.dg/guality/pr89463.c: New testcase.

From-SVN: r269961

5 years ago[RS6000] Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
Alan Modra [Wed, 27 Mar 2019 01:15:50 +0000 (11:45 +1030)]
[RS6000] Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS

* config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
throughout file.
* config/rs6000/darwin.h: Likewise.
* config/rs6000/rs6000.c: Likewise.

From-SVN: r269960

5 years ago[RS6000] Don't rely on rs6000_hard_regno_mode_ok being zero
Alan Modra [Wed, 27 Mar 2019 01:12:35 +0000 (11:42 +1030)]
[RS6000] Don't rely on rs6000_hard_regno_mode_ok being zero

* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
assign rs6000_hard_regno_mode_ok_p[m][r].  Formatting.

From-SVN: r269959

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

From-SVN: r269958

5 years agoRISC-V: Add sifive-7 pipeline description.
Andrew Waterman [Tue, 26 Mar 2019 19:41:02 +0000 (19:41 +0000)]
RISC-V: Add sifive-7 pipeline description.

* config/riscv/generic.md (generic_alu, generic_load, generic_store)
(generic_xfer, generic_branch, generic_imul, generic_idivsi)
(generic_idivdi, generic_fmul_single, generic_fmul_double)
(generic_fdiv, generic_fsqrt): Add check for generic tune.
(generic_alu): Add auipc to type list.
* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
(riscv_microarchitecture): Declare.
* config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
* config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
field.
(riscv_microarchitecture): New.
(sifive_7_tune_info): New.
(riscv_cpu_info_table): Add microarchitecture value for rocket and
size.  Add sifive-3-series, sifive-5-series, and sifive-7-series
entries.
(riscv_store_data_bypass_p): New.
(riscv_option_override): Set riscv_microarchitecture from
cpu->microarchitecture.
* config/riscv/riscv.md: Include sifive-7.md.
(type): Add auipc.
(tune): New.
(auipc<mode>): Change type to auipc.
(restore_stack_nonlocal): New.
* config/riscv/sifive-7.md: New.
* doc/invoke.texi (RISC-V Options): Update mtune docs.

Co-Authored-By: Jim Wilson <jimw@sifive.com>
From-SVN: r269954

5 years agore PR target/89827 (ICE: in convert_op, at config/i386/i386.c:2098 with -Os -maes)
Uros Bizjak [Tue, 26 Mar 2019 18:59:14 +0000 (19:59 +0100)]
re PR target/89827 (ICE: in convert_op, at config/i386/i386.c:2098 with -Os -maes)

PR target/89827
* config/i386/i386.c (dimode_scalar_chain::convert_reg):
Also process XEXP (src, 0) of a shift insn.

testsuite/ChangeLog:

PR target/89827
* gcc.target/i386/pr89827.c: New test.

From-SVN: r269953

5 years agoFix g++.dg/abi/lambda-static-1.C with Solaris as
Rainer Orth [Tue, 26 Mar 2019 18:29:16 +0000 (18:29 +0000)]
Fix g++.dg/abi/lambda-static-1.C with Solaris as

* g++.dg/abi/lambda-static-1.C: Handle Solaris as comdat group
syntax.

From-SVN: r269952

5 years agoPR c++/86429 - constexpr variable in lambda.
Jason Merrill [Tue, 26 Mar 2019 16:02:19 +0000 (12:02 -0400)]
PR c++/86429 - constexpr variable in lambda.

When we refer to a captured variable from a constant-expression context
inside a lambda, the closure (like any function parameter) is not constant
because we aren't in a call, so we don't have an argument.  So the capture
is non-constant.  But if the captured variable is constant, we might be able
to use it directly in constexpr evaluation.

PR c++/82643
PR c++/87327
* constexpr.c (cxx_eval_constant_expression): In a lambda function,
try evaluating the captured variable directly.

From-SVN: r269951

5 years agoPR libstdc++/85965 delay static assertions until types are complete
Jonathan Wakely [Tue, 26 Mar 2019 15:28:48 +0000 (15:28 +0000)]
PR libstdc++/85965 delay static assertions until types are complete

The static assertions added for PR libstdc++/48101 were at class scope
and so were evaluated too eagerly, when it might not be possible to
determine whether the function objects are invocable with the key types.
The problematic cases are where the key type is not known to be
convertible to the argument type(s) of the function object until later,
after a type has been completed. Specifically, if the key type is a
pointer to a derived class and the function object's argument type is a
pointer to a base class, then the derived-to-base conversion is only
valid once the derived type is complete.

By moving the static assertions to the destructor they will only be
evaluated when the destructor is instantiated, at which point whether
the key type can be passed to the function object should be knowable.
The ideal place to do the checks would be only when the function objects
are actually invoked, but that would mean adding the checks in numerous
places, so the destructor is used instead.

The tests need to be adjusted because the "required from here" line is
now the location of the destructor, not the point of instantiation in
the test file. For the map and multimap tests which check two
specializations, the dg-error matching the assertion text matches both
cases. Also check the diagnostic output for the template arguments, to
ensure both specializations trigger the assertion.

PR libstdc++/85965
* include/bits/hashtable.h (_Hashtable): Move static assertions to
destructor so they are not evaluated until the _Key type is complete.
* include/bits/stl_tree.h (_Rb_tree): Likewise.
* testsuite/23_containers/set/85965.cc: New test.
* testsuite/23_containers/unordered_set/85965.cc: New test.
* testsuite/23_containers/map/48101_neg.cc: Replace "here" errors
with regexp matching the corresponding _Rb_tree specialization.
* testsuite/23_containers/multimap/48101_neg.cc: Likewise.
* testsuite/23_containers/multiset/48101_neg.cc: Remove "here" error.
* testsuite/23_containers/set/48101_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/48101_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.

From-SVN: r269949

5 years agolibphobos: Backport extern(C) bindings from druntime 2.085.
Iain Buclaw [Tue, 26 Mar 2019 15:18:19 +0000 (15:18 +0000)]
libphobos: Backport extern(C) bindings from druntime 2.085.

Merges upstream druntime b9564bef.

Reviewed-on: https://github.com/dlang/druntime/pull/2512

libphobos/ChangeLog:

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

* libdruntime/Makefile.am (DRUNTIME_DSOURCES_DARWIN): Add
core/sys/darwin/crt_externs.d.
(DRUNTIME_DSOURCES_FREEBSD): Add core/sys/freebsd/unistd.d.
(DRUNTIME_DSOURCES_POSIX): Add core/sys/posix/spawn.d.
* libdruntime/Makefile.in: Regenerate.

From-SVN: r269948

5 years agore PR libstdc++/89825 (Jump table for variant visitation could be shortened for never...
Ville Voutilainen [Tue, 26 Mar 2019 15:00:05 +0000 (17:00 +0200)]
re PR libstdc++/89825 (Jump table for variant visitation could be shortened for never empty variants)

PR libstdc++/89825

Fix based on a suggestion by Antony Polukhin.
* include/std/variant (_Extra_visit_slot_needed): New.
(_Multi_array): Use it.
(_S_apply_all_alts): Likewise.

From-SVN: r269947

5 years agotree-inline.c (remap_gimple_stmt): Cache gimple_block.
Richard Biener [Tue, 26 Mar 2019 14:56:30 +0000 (14:56 +0000)]
tree-inline.c (remap_gimple_stmt): Cache gimple_block.

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

* tree-inline.c (remap_gimple_stmt): Cache gimple_block.
(copy_debug_stmt): Likewise.
(expand_call_inline): Likewise.
(copy_bb): Avoid redundant lookup & set of gimple_block.
* gimple-low.c (lower_gimple_return): Likewise.
(lower_builtin_setjmp): Likewise.

From-SVN: r269946

5 years agod/dmd: Merge upstream dmd ab702e73e
Iain Buclaw [Tue, 26 Mar 2019 14:40:06 +0000 (14:40 +0000)]
d/dmd: Merge upstream dmd ab702e73e

Fixes memory leak in the front-end symbol mangler, and introduces
recognition and rejection of a few more C types and directives.

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

From-SVN: r269945

5 years agohash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS is constant 0...
Jakub Jelinek [Tue, 26 Mar 2019 13:40:43 +0000 (14:40 +0100)]
hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS is constant 0...

* hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
is constant 0, turn into static const data member initialized to false.
(hash_table::hash_table): Only initialize m_gather_mem_stats #if
GATHER_STATISTICS.  Add ATTRIBUTE_UNUSED to gather_mem_stats param.

From-SVN: r269944

5 years agomem-stats.h (mem_alloc_description::unregister_descriptor): New method.
Jason Merrill [Tue, 26 Mar 2019 13:38:53 +0000 (09:38 -0400)]
mem-stats.h (mem_alloc_description::unregister_descriptor): New method.

* mem-stats.h (mem_alloc_description::unregister_descriptor): New
method.
(mem_alloc_description::release_object_overhead): Fix comment typos.
* hash-table.h (hash_table::~hash_table): Call
release_instance_overhead only if m_entries is non-NULL, otherwise
call unregister_descriptor.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r269943

5 years agore PR libstdc++/89824 (Variant jump table reserves space for __variant_cookie twice)
Ville Voutilainen [Tue, 26 Mar 2019 12:41:59 +0000 (14:41 +0200)]
re PR libstdc++/89824 (Variant jump table reserves space for __variant_cookie twice)

PR libstdc++/89824

Fix based on a suggestion by Antony Polukhin.
* include/std/variant (__gen_vtable): Don't reserve an
additional table slot, _Multi_array already does that.

From-SVN: r269941

5 years agore PR libstdc++/89816 (std::variant move construction regressed since GCC 8.3)
Ville Voutilainen [Tue, 26 Mar 2019 12:07:26 +0000 (14:07 +0200)]
re PR libstdc++/89816 (std::variant move construction regressed since GCC 8.3)

PR libstdc++/89816

Fix based on a suggestion by Antony Polukhin.
* include/std/variant (__variant_construct): Capture a pointer
to the storage and visit just one variant.

From-SVN: r269940

5 years agore PR tree-optimization/81740 (wrong code at -O3 in both 32-bit and 64-bit modes...
Bin Cheng [Tue, 26 Mar 2019 11:12:37 +0000 (11:12 +0000)]
re PR tree-optimization/81740 (wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu)

2019-03-26  Bin Cheng  <bin.cheng@linux.alibaba.com>

PR tree-optimization/81740
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
In case of outer loop vectorization, check for backward dependence
at the inner loop if outer loop dependence is reversed.

* gcc.dg/vect/pr81740-1.c: New testcase.
* gcc.dg/vect/pr81740-2.c: Likewise.

From-SVN: r269938

5 years agogdc-test.exp (gdc-do-test): Sort and remove duplicate options in permute args tests.
Iain Buclaw [Tue, 26 Mar 2019 11:02:42 +0000 (11:02 +0000)]
gdc-test.exp (gdc-do-test): Sort and remove duplicate options in permute args tests.

gcc/testsuite/ChangeLog:

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

* gdc.test/gdc-test.exp (gdc-do-test): Sort and remove duplicate
options in permute args tests.

From-SVN: r269937

5 years agore PR c++/84598 (internal compiler error: Segmentation fault (cp_default_conversion()))
Paolo Carlini [Tue, 26 Mar 2019 10:16:13 +0000 (10:16 +0000)]
re PR c++/84598 (internal compiler error: Segmentation fault (cp_default_conversion()))

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

PR c++/84598
* g++.dg/ext/pr84598.C: New.

From-SVN: r269936

5 years agoAdd missing dot.
Martin Liska [Tue, 26 Mar 2019 09:58:34 +0000 (09:58 +0000)]
Add missing dot.

From-SVN: r269935

5 years agoFix wrong option wrapping.
Martin Liska [Tue, 26 Mar 2019 09:57:29 +0000 (10:57 +0100)]
Fix wrong option wrapping.

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

* lto-symtab.c (lto_symtab_merge_decls_2): Fix option name
wrapping

From-SVN: r269934

5 years agore PR c++/89796 (Incorrect warning generated with OpenMP atomic capture)
Jakub Jelinek [Tue, 26 Mar 2019 07:54:02 +0000 (08:54 +0100)]
re PR c++/89796 (Incorrect warning generated with OpenMP atomic capture)

PR c++/89796
* semantics.c (finish_omp_atomic): Add warning_sentinel for
-Wunused-value around finish_expr_stmt call.

* g++.dg/gomp/pr89796.C: New test.
* gcc.dg/gomp/pr89796.c: New test.

From-SVN: r269933

5 years ago[RS6000] Fix typos
Alan Modra [Tue, 26 Mar 2019 05:16:14 +0000 (15:46 +1030)]
[RS6000] Fix typos

* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
rs6000_vector_mem init.  Correct wI and wJ comment

From-SVN: r269932

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

From-SVN: r269931

5 years agore PR rtl-optimization/88347 (ICE in begin_move_insn, at sched-ebb.c:175)
Jeff Law [Mon, 25 Mar 2019 23:33:36 +0000 (17:33 -0600)]
re PR rtl-optimization/88347 (ICE in begin_move_insn, at sched-ebb.c:175)

PR rtl-optimization/88347
PR rtl-optimization/88423
* sched-deps.c (sched_analyze_insn): Take into account that for
tablejumps the barrier appears after a label and a jump_table_data.

* gcc.c-torture/compile/pr88347.c: New test.
* gcc.c-torture/compile/pr88423.c: New test.

From-SVN: r269928

5 years agoPR c/89812 - incorrect maximum in error: requested alignment '536870912' exceeds...
Martin Sebor [Mon, 25 Mar 2019 22:56:40 +0000 (22:56 +0000)]
PR c/89812 - incorrect maximum in error: requested alignment '536870912' exceeds maximum 2147483648

gcc/c-family/ChangeLog:

PR c/89812
* c-common.c (check_user_alignment): Rename local.  Correct maximum
alignment in diagnostic.  Avoid assuming argument fits in SHWI,
convert it to UHWI when it fits.

gcc/testsuite/ChangeLog:

PR c/89812
* gcc.dg/attr-aligned-3.c: New test.

From-SVN: r269927

5 years agoUpdate .po files.
Joseph Myers [Mon, 25 Mar 2019 21:49:28 +0000 (21:49 +0000)]
Update .po files.

* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
zh_TW.po: Update.

From-SVN: r269926

5 years agore PR debug/86964 (Too many debug symbols included, especially for extern globals)
Johan Karlsson [Mon, 25 Mar 2019 21:19:09 +0000 (21:19 +0000)]
re PR debug/86964 (Too many debug symbols included, especially for extern globals)

PR debug/86964
* dwarf2out.c (premark_used_variables): New function.
(prune_unused_types_walk): Do not mark not premarked external
variables.
(prune_unused_types): Call premark_used_variables.

* gcc.dg/debug/dwarf2/pr86964.c: New testcase.

From-SVN: r269925

5 years agore PR rtl-optimization/89676 (Redundant moves for long long shift on 32bit x86)
Vladimir Makarov [Mon, 25 Mar 2019 21:14:40 +0000 (21:14 +0000)]
re PR rtl-optimization/89676 (Redundant moves for long long shift on 32bit x86)

2019-03-25  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/89676
* lra-constraints.c (curr_insn_transform): Do match reload for
early clobbers when the match was successful only for different
registers.

From-SVN: r269924

5 years agore PR c++/84661 (internal compiler error: Segmentation fault (strip_array_types()))
Paolo Carlini [Mon, 25 Mar 2019 20:43:36 +0000 (20:43 +0000)]
re PR c++/84661 (internal compiler error: Segmentation fault (strip_array_types()))

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

PR c++/84661
PR c++/85013
* parser.c (cp_parser_binary_expression): Don't call cp_fully_fold
to undo the disabling of warnings.

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

PR c++/84661
PR c++/85013
* g++.dg/concepts/pr84661.C: New.
* g++.dg/torture/pr85013.C: Likewise.

From-SVN: r269923

5 years agoPR c++/87748 - substitution failure error with decltype.
Jason Merrill [Mon, 25 Mar 2019 18:27:08 +0000 (14:27 -0400)]
PR c++/87748 - substitution failure error with decltype.

This issue is similar to PR 87480; in both cases we were doing non-dependent
substitution with processing_template_decl set, leading to member access
expressions seeming still instantiation-dependent, and therefore decltype
not being simplified to its actual type.  And as in that PR, the fix is to
clear processing_template_decl while substituting a default template
argument.

* pt.c (most_specialized_partial_spec): Clear
processing_template_decl.

From-SVN: r269921

5 years agoextend.texi (Common Type Attributes): Document vector_size.
Martin Sebor [Mon, 25 Mar 2019 17:23:31 +0000 (17:23 +0000)]
extend.texi (Common Type Attributes): Document vector_size.

gcc/ChangeLog:
* doc/extend.texi (Common Type Attributes): Document vector_size.
(Common Variable Attributes): Mention size constraint.  Correct
quoting and typos.
(Vector Extensions): Use @dfn when defining bas type.  Clarify
base type and size constraints.

From-SVN: r269920

5 years agoPR c++/89214 - ICE when initializing aggregates with bases.
Marek Polacek [Mon, 25 Mar 2019 16:38:48 +0000 (16:38 +0000)]
PR c++/89214 - ICE when initializing aggregates with bases.

* typeck2.c (digest_init_r): Warn about object slicing instead of
crashing.

* g++.dg/cpp1z/aggr-base8.C: New test.
* g++.dg/cpp1z/aggr-base9.C: New test.

From-SVN: r269919

5 years agoPR c++/89705 - ICE with reference binding with conversion function.
Marek Polacek [Mon, 25 Mar 2019 16:10:06 +0000 (16:10 +0000)]
PR c++/89705 - ICE with reference binding with conversion function.

* call.c (reference_binding): If the result of the conversion function
is a prvalue of non-class type, use the cv-unqualified type.

* g++.dg/cpp0x/rv-conv2.C: New test.

From-SVN: r269918

5 years agore PR tree-optimization/89789 (Compile time hog during RPO VN)
Richard Biener [Mon, 25 Mar 2019 13:53:50 +0000 (13:53 +0000)]
re PR tree-optimization/89789 (Compile time hog during RPO VN)

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

PR tree-optimization/89789
* tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
changes from non-undefined back to undefined.

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

From-SVN: r269917

5 years agodwarf2out.c (comp_dir_string): cached_wd could be set to both a heap string and a...
Thomas Otto [Mon, 25 Mar 2019 13:50:46 +0000 (13:50 +0000)]
dwarf2out.c (comp_dir_string): cached_wd could be set to both a heap string and a gc string...

2019-03-25  Thomas Otto  <thomas.otto@pdv-fs.de>

* dwarf2out.c (comp_dir_string): cached_wd could be set to both a
heap string and a gc string, but since this variable is unknown to
ggc the gc string might get reused and corrupted. Fixed by always
using a heap string.

From-SVN: r269916

5 years ago[C++] compiler incompatibility with lambdas
Nathan Sidwell [Mon, 25 Mar 2019 12:22:47 +0000 (12:22 +0000)]
[C++] compiler incompatibility with lambdas

https://gcc.gnu.org/ml/gcc-patches/2019-03/msg00982.html
* lambda.c (maybe_add_lambda_conv_op): Don't add to comdat group.
* g++.dg/abi/lambda-static-1.C: New.

From-SVN: r269915

5 years agore PR middle-end/89779 (internal compiler error: tree check: expected class ‘type...
Richard Biener [Mon, 25 Mar 2019 12:18:38 +0000 (12:18 +0000)]
re PR middle-end/89779 (internal compiler error: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in tree_nop_conversion_p, at tree.c:12798)

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

PR tree-optimization/89779
* tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
to remove IV defs, delay actual removal.
(tree_ssa_iv_optimize_loop): Likewise.  Avoid SCEV reset.
(tree_ssa_iv_optimize): Remove eliminated IV defs at the
very end, properly also reset loop control IV information.

From-SVN: r269914

5 years agore PR tree-optimization/89802 ([9 Regresssion] ICE: verify_gimple failed (error:...
Richard Biener [Mon, 25 Mar 2019 12:15:59 +0000 (12:15 +0000)]
re PR tree-optimization/89802 ([9 Regresssion] ICE: verify_gimple failed (error: dead STMT in EH table))

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

PR tree-optimization/89802
* tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
move EH data to folded stmt.

* g++.dg/tree-ssa/pr89802.C: New testcase.

From-SVN: r269913

5 years agore PR c++/60702 (thread_local initialization)
Jakub Jelinek [Mon, 25 Mar 2019 11:53:56 +0000 (12:53 +0100)]
re PR c++/60702 (thread_local initialization)

PR c++/60702
* g++.dg/tls/thread_local11.C: Remove scan-tree-dump-times directives
for _ZTH* calls.
* g++.dg/tls/thread_local11a.C: New test.

From-SVN: r269912

5 years agore PR libfortran/79540 (FAIL: gfortran.dg/fmt_fw_d.f90 -O0 execution test)
John David Anglin [Mon, 25 Mar 2019 11:48:36 +0000 (11:48 +0000)]
re PR libfortran/79540 (FAIL: gfortran.dg/fmt_fw_d.f90   -O0  execution test)

PR libgfortran/79540
* io/write_float.def (build_float_string): Don't copy digits when
ndigits is negative.

From-SVN: r269911

5 years agoS/390: Cleanup builtin types file
Andreas Krebbel [Mon, 25 Mar 2019 10:10:31 +0000 (10:10 +0000)]
S/390: Cleanup builtin types file

gcc/ChangeLog:

2019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>

* config/s390/s390-builtin-types.def: Remove few unused types and
fix sort order for others.

From-SVN: r269909

5 years agoS/390: Improve debug output for builtin matching
Andreas Krebbel [Mon, 25 Mar 2019 10:09:43 +0000 (10:09 +0000)]
S/390: Improve debug output for builtin matching

gcc/ChangeLog:

2019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>

* config/s390/s390-c.c (s390_fn_types_compatible): Print the
expected and found types with -mdebug during builtin matching.

From-SVN: r269908

5 years agore PR middle-end/89790 (ICE segfault in operand_equal_p() at fold-const.c:3000 with...
Richard Biener [Mon, 25 Mar 2019 10:05:15 +0000 (10:05 +0000)]
re PR middle-end/89790 (ICE segfault in operand_equal_p() at fold-const.c:3000 with -Wduplicated-cond since r269838)

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

PR middle-end/89790
* fold-const.c (operand_equal_p): Revert last change with
updated comment.

* g++.dg/pr89790.C: New testcase.

From-SVN: r269907

5 years ago[doc] Fix typos in MINLOC, MAXLOC documentation
Kyrylo Tkachov [Mon, 25 Mar 2019 09:25:07 +0000 (09:25 +0000)]
[doc] Fix typos in MINLOC, MAXLOC documentation

I think there's a typo in the documentation of the MINLOC and MAXLOC intrinsics.
It implies that when the BACK argument is true it returns the first occurrence of the min/max value,
but my understanding is that it should return the last occurrence.

This patch fixes the documentation.

* intrinsic.texi (MINLOC): Fix typo in BACK argument documentation.
(MAXLOC): Likewise.

From-SVN: r269906

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

From-SVN: r269905

5 years agors6000: Make CSE'ing __tls_get_addr calls possible
Segher Boessenkool [Sun, 24 Mar 2019 20:26:53 +0000 (21:26 +0100)]
rs6000: Make CSE'ing __tls_get_addr calls possible

CSE does not consider calls, not even const calls.  This patch puts a
REG_EQUAL note on the pseudo we assign the __tls_get_addr result to,
so that those pseudos can be CSE'd and the extra calls deleted as dead
code.

CSE should really handle const calls directly, but it is stage 4.

* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
notes for the result of the __tls_get_addr calls.
* config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.

From-SVN: r269902

5 years ago* testsuite/ChangeLog: Fix ChangeLog entry.
Uros Bizjak [Sun, 24 Mar 2019 19:47:03 +0000 (20:47 +0100)]
* testsuite/ChangeLog: Fix ChangeLog entry.

From-SVN: r269901

5 years agopr82281.c: Compile only for ia32 effective target.
Uros Bizjak [Sun, 24 Mar 2019 19:39:59 +0000 (20:39 +0100)]
pr82281.c: Compile only for ia32 effective target.

* gcc.target/i386/pr82281.c: Compile only for ia32 effective target.
(dg-options): Remove -m32. Add -msse2 -mtune=znver1.
* gcc.target/i386/pr89676.c: Compile only for ia32 effective target.
(dg-options): Remove -m32 and -march=i686. Add -mno-stv.

From-SVN: r269900