platform/upstream/gcc.git
6 years ago[LVU] reset view at function entry, omit views at line zero
Alexandre Oliva [Thu, 8 Mar 2018 08:27:56 +0000 (08:27 +0000)]
[LVU] reset view at function entry, omit views at line zero

Location views might be associated with locations that lack line
number information (line number zero), but since we omit .loc
directives that would have been issued with line number zero, we also
omit the symbolic view numbers that would have been issued at such
points.

Resetting views at function entry points address some of these issues,
and alleviate the huge chains of symbolic views that have burdened
assemblers since we disabled -ginternal-reset-location-views by
default, but other problems of undefined views remain when it's not
the whole function that lacks line number info, just parts of it.

So, when we encounter a request to output a view that may have been
referenced, but we decide to omit the .loc because the line is zero,
we will now omit the view as well, i.e., we will internally regard
that view as zero-numbered.

for  gcc/ChangeLog

PR debug/84404
PR debug/84408
* dwarf2out.c (struct dw_line_info_table): Update comments for
view == -1.
(FORCE_RESET_NEXT_VIEW): New.
(FORCE_RESETTING_VIEW_P): New.
(RESETTING_VIEW_P): Check for -1 too.
(ZERO_VIEW_P): Likewise.
(new_line_info_table): Force-reset next view.
(dwarf2out_begin_function): Likewise.
(dwarf2out_source_line): Simplify zero_view_p initialization.
Test FORCE_RESETTING_VIEW_P and RESETTING_VIEW_P instead of
view directly.  Omit view when omitting .loc at line 0.

for  gcc/testsuite/ChangeLog

PR debug/84404
PR debug/84408
* gcc.dg/graphite/pr84404.c: New.

From-SVN: r258355

6 years agore PR tree-optimization/84740 (ICE in build_constructors, at tree-switch-conversion...
Jakub Jelinek [Thu, 8 Mar 2018 07:29:42 +0000 (08:29 +0100)]
re PR tree-optimization/84740 (ICE in build_constructors, at tree-switch-conversion.c:965)

PR tree-optimization/84740
* tree-switch-conversion.c (process_switch): Call build_constructors
only if info.phi_count is non-zero.

* gcc.dg/torture/pr84740.c: New test.

From-SVN: r258354

6 years agore PR tree-optimization/84739 (ICE in get_value_for_expr, at tree-ssa-ccp.c:649)
Jakub Jelinek [Thu, 8 Mar 2018 06:56:59 +0000 (07:56 +0100)]
re PR tree-optimization/84739 (ICE in get_value_for_expr, at tree-ssa-ccp.c:649)

PR tree-optimization/84739
* tree-tailcall.c (find_tail_calls): Check call arguments against
DECL_ARGUMENTS (current_function_decl) rather than
DECL_ARGUMENTS (func) when checking for tail recursion.

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

From-SVN: r258351

6 years agoprinters.py (NodeIteratorPrinter): New.
François Dumont [Thu, 8 Mar 2018 06:26:15 +0000 (06:26 +0000)]
printers.py (NodeIteratorPrinter): New.

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

* python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
(StdListIteratorPrinter): Inherit from latter.
(StdFwdListIteratorPrinter): New, inherit from latter.
(StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
when iterator has no associated container.
(build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
__gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
registrations.
* testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
* testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.

From-SVN: r258350

6 years agoPR tree-optimization/83519 - missing -Wrestrict on an overlapping strcpy to a non...
Martin Sebor [Thu, 8 Mar 2018 00:56:07 +0000 (00:56 +0000)]
PR tree-optimization/83519 - missing -Wrestrict on an overlapping strcpy to a non-member array

gcc/testsuite/ChangeLog:

* gcc.dg/Wrestrict-13.c: New test.

From-SVN: r258348

6 years agore PR fortran/64124 ([F95] Valid constant expr rejected)
Steven G. Kargl [Thu, 8 Mar 2018 00:42:41 +0000 (00:42 +0000)]
re PR fortran/64124 ([F95] Valid constant expr rejected)

2018-03-07  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/64124
PR fortran/70409
* decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant.

2018-03-07  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/64124
PR fortran/70409
* gfortran.dg/pr64124.f90: New tests.
* gfortran.dg/pr70409.f90: New tests.

From-SVN: r258347

6 years agoDaily bump.
GCC Administrator [Thu, 8 Mar 2018 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r258345

6 years agocontrib.texi: Add entries for Martin Liska...
Jakub Jelinek [Wed, 7 Mar 2018 21:59:09 +0000 (22:59 +0100)]
contrib.texi: Add entries for Martin Liska...

* doc/contrib.texi: Add entries for Martin Liska, David Malcolm,
Marek Polacek, extend Vladimir Makarov's, Jonathan Wakely's and
Volker Reichelt's entry and add entries for people that perform
GCC fuzzy testing and report numerous bugs.

From-SVN: r258342

6 years agolambda.c (is_capture_proxy_with_ref): Remove.
Jason Merrill [Wed, 7 Mar 2018 21:04:18 +0000 (16:04 -0500)]
lambda.c (is_capture_proxy_with_ref): Remove.

* lambda.c (is_capture_proxy_with_ref): Remove.

* constexpr.c, expr.c, cp-tree.h, semantics.c: Adjust.

From-SVN: r258341

6 years agors6000: -mreadonly-in-sdata (PR82411)
Segher Boessenkool [Wed, 7 Mar 2018 20:27:11 +0000 (21:27 +0100)]
rs6000: -mreadonly-in-sdata (PR82411)

This adds a new option -mreadonly-in-sdata (on by default) that
controls whether readonly data can be put in sdata.  (For EABI this
does nothing, readonly data is put in sdata2 as usual).

PR target/82411
* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put
readonly data in sdata, if that is disabled.
* config/rs6000/sysv4.opt (mreadonly-in-sdata): New option.
* doc/invoke.texi (RS/6000 and PowerPC Options): Document
-mreadonly-in-sdata option.

gcc/testsuite/
PR target/82411
* gcc.target/powerpc/ppc-sdata-2.c: Skip if -mno-readonly-in-sdata.

From-SVN: r258340

6 years agoPR tree-optimization/84468 - bogus -Wstringop-truncation despite assignment after...
Martin Sebor [Wed, 7 Mar 2018 19:30:31 +0000 (19:30 +0000)]
PR tree-optimization/84468 - bogus -Wstringop-truncation despite assignment after conditional strncpy

gcc/ChangeLog:

PR tree-optimization/84468
* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Consider successor
basic block when looking for nul assignment.

gcc/testsuite/ChangeLog:

PR tree-optimization/84468
* g++.dg/warn/Wstringop-truncation-2.C: New test.
* gcc.dg/Wstringop-truncation.c: New test.
* gcc.dg/Wstringop-truncation-2.c: New test.

From-SVN: r258339

6 years agore PR target/84277 (A lot of new acats testsuite failures)
Eric Botcazou [Wed, 7 Mar 2018 15:54:59 +0000 (15:54 +0000)]
re PR target/84277 (A lot of new acats testsuite failures)

PR target/84277
* except.h (output_function_exception_table): Adjust prototype.
* except.c (output_function_exception_table): Remove FNNAME parameter
and add SECTION parameter.  Ouput one part of the table at a time.
* final.c (final_scan_insn_1) <NOTE_INSN_SWITCH_TEXT_SECTIONS>: Output
the first part of the exception table and emit unwind directives.
* config/i386/i386-protos.h (i386_pe_end_cold_function): Declare.
(i386_pe_seh_cold_init): Likewise.
* config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro.
(ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise.
* config/i386/i386.c (x86_expand_epilogue): Fix wording in comment.
(ix86_output_call_insn): Emit a nop in one more case for SEH.
* config/i386/winnt.c: Include except.h.
(struct seh_frame_state): Add reg_offset, after_prologue and
in_cold_section fields.
(i386_pe_seh_end_prologue): Set seh->after_prologue.
(i386_pe_seh_cold_init): New function.
(i386_pe_seh_fini): Add COLD parameter and bail out if it is not equal
to seh->in_cold_section.
(seh_emit_push): Record the offset of the push.
(seh_emit_save): Record the offet of the save.
(i386_pe_seh_unwind_emit): Deal with NOTE_INSN_SWITCH_TEXT_SECTIONS.
Test seh->after_prologue to disregard the epilogue.
(i386_pe_end_function): Pass FALSE to i386_pe_seh_fini.
(i386_pe_end_cold_function): New function.

From-SVN: r258338

6 years agoruntime: push arena on AIX higher due to clashes
Ian Lance Taylor [Wed, 7 Mar 2018 15:22:46 +0000 (15:22 +0000)]
runtime: push arena on AIX higher due to clashes

    Reviewed-on: https://go-review.googlesource.com/99117

From-SVN: r258337

6 years agoruntime: use a fence instruction before rdtsc
Ian Lance Taylor [Wed, 7 Mar 2018 14:31:03 +0000 (14:31 +0000)]
runtime: use a fence instruction before rdtsc

    This implements the same choices made in the gc runtime, except that
    for 32-bit x86 we only use the fence instruction if the processor
    supports SSE2.

    The code here is hacked up for speed; the gc runtime uses straight
    assembler.

    Reviewed-on: https://go-review.googlesource.com/97715

From-SVN: r258336

6 years agoAda: Fix s-oscons.ads generation
Sebastian Huber [Wed, 7 Mar 2018 12:10:24 +0000 (12:10 +0000)]
Ada: Fix s-oscons.ads generation

The $(GNATLIBCFLAGS) are already included in $(GNATLIBCFLAGS_FOR_C).

We must call the C compiler with the right machine flags.  So, add
$(GNATLIBCFLAGS_FOR_C) to $(OSCONS_EXTRACT).  For example, on a bi-arch
compiler supporting 32-bit and 64-bit instruction sets we pick otherwise
only one variant due to a missing -m32 or -m64 flag.

gcc/ada
* gcc-interface/Makefile.in (OSCONS_CPP): Remove redundant
$(GNATLIBCFLAGS).
(OSCONS_EXTRACT): Add $(GNATLIBCFLAGS_FOR_C).

From-SVN: r258334

6 years agore PR target/84565 (ICE in extract_insn, at recog.c:2304 on aarch64)
Jakub Jelinek [Wed, 7 Mar 2018 10:39:32 +0000 (11:39 +0100)]
re PR target/84565 (ICE in extract_insn, at recog.c:2304 on aarch64)

PR fortran/84565
* config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use
aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero.

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

From-SVN: r258333

6 years agore PR c++/84704 (internal compiler error: gimplification failed)
Jakub Jelinek [Wed, 7 Mar 2018 09:19:36 +0000 (10:19 +0100)]
re PR c++/84704 (internal compiler error: gimplification failed)

PR c++/84704
* gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag
on tmp_var.
* tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG,
don't print names of DECL_NAMELESS DECL_IGNORED_P decls.

From-SVN: r258317

6 years agore PR middle-end/84723 (ICE in create_target_clone, at multiple_target.c:275)
Jakub Jelinek [Wed, 7 Mar 2018 09:16:07 +0000 (10:16 +0100)]
re PR middle-end/84723 (ICE in create_target_clone, at multiple_target.c:275)

PR middle-end/84723
* multiple_target.c: Include tree-inline.h and intl.h.
(expand_target_clones): Diagnose and fail if node->definition and
!tree_versionable_function_p (node->decl).

* gcc.target/i386/pr84723-1.c: New test.
* gcc.target/i386/pr84723-2.c: New test.
* gcc.target/i386/pr84723-3.c: New test.
* gcc.target/i386/pr84723-4.c: New test.
* gcc.target/i386/pr84723-5.c: New test.

From-SVN: r258316

6 years agoFix Changelog commit errro.
Denis Chertykov [Wed, 7 Mar 2018 08:53:33 +0000 (11:53 +0300)]
Fix Changelog commit errro.

From-SVN: r258314

6 years agopa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use sprint_ul.
John David Anglin [Wed, 7 Mar 2018 00:47:41 +0000 (00:47 +0000)]
pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use sprint_ul.

* config/pa/pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use
sprint_ul.
(ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change.
(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
* config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above.

From-SVN: r258312

6 years agore PR fortran/64107 ([F95] Pure function as array size)
Steven G. Kargl [Wed, 7 Mar 2018 00:25:30 +0000 (00:25 +0000)]
re PR fortran/64107 ([F95] Pure function as array size)

2018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>

        PR fortran/64107
        * gfortran.dg/pr64107.f90: New test.

From-SVN: r258311

6 years agofptr.c (_dl_read_access_allowed): New.
John David Anglin [Wed, 7 Mar 2018 00:17:32 +0000 (00:17 +0000)]
fptr.c (_dl_read_access_allowed): New.

* config/pa/fptr.c (_dl_read_access_allowed): New.
(__canonicalize_funcptr_for_compare): Use it.

From-SVN: r258310

6 years agoDaily bump.
GCC Administrator [Wed, 7 Mar 2018 00:16:24 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r258309

6 years agore PR fortran/84697 (minloc/maxloc not simplified with zero size)
Thomas Koenig [Tue, 6 Mar 2018 23:50:01 +0000 (23:50 +0000)]
re PR fortran/84697 (minloc/maxloc not simplified with zero size)

2017-03-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/84697
PR fortran/66128
* expr.c (simplify_parameter_variable): If p is a size zero array
and not an ARRAY_EXPR insert an empty array constructor and
return.
* gfortran.h: Add prototype for gfc_is_size_zero_array.
* simplify.c (is_size_zero_array): Make non-static and rename into
(gfc_is_size_zero_array):  Check for parameter arrays of zero
size by comparing shape and absence of constructor.
(gfc_simplify_all): Use gfc_is_size_zero_array instead of
is_size_zero_array.
(gfc_simplify_count): Likewise.
(gfc_simplify_iall): Likewise.
(gfc_simplify_iany): Likewise.
(gfc_simplify_iparity): Likewise.
(gfc_simplify_minval): Likewise.
(gfc_simplify_maxval): Likewise.
(gfc_simplify_product): Likewise.
(gfc_simplify_sum): Likewise.

2017-03-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/84697
PR fortran/66128
* gfortran.dg/minmaxloc_zerosize_1.f90: New test.

From-SVN: r258305

6 years agore PR libstdc++/84601 (std::optional<std::pair<int, int>> is not assignment copyable)
Ville Voutilainen [Tue, 6 Mar 2018 21:43:03 +0000 (23:43 +0200)]
re PR libstdc++/84601 (std::optional<std::pair<int, int>> is not assignment copyable)

PR libstdc++/84601
* include/std/optional (_Optional_payload): Split into multiple
specializations that can handle different cases of trivial or
non-trivial assignment operators.
* testsuite/20_util/optional/84601.cc: New.
* testsuite/20_util/optional/cons/value_neg.cc: Adjust.

From-SVN: r258304

6 years agore PR c++/84684 (inserting random code / flags produces wrong code)
Marek Polacek [Tue, 6 Mar 2018 21:11:46 +0000 (21:11 +0000)]
re PR c++/84684 (inserting random code / flags produces wrong code)

PR c++/84684
* constexpr.c (cxx_bind_parameters_in_call): Unshare evaluated
arguments.

* g++.dg/cpp1z/constexpr-84684.C: New test.

From-SVN: r258303

6 years agore PR c/84721 (ICE in c_push_function_context, at c-decl.c:9667)
Jakub Jelinek [Tue, 6 Mar 2018 20:57:30 +0000 (21:57 +0100)]
re PR c/84721 (ICE in c_push_function_context, at c-decl.c:9667)

PR c/84721
* c-parser.c (add_debug_begin_stmt): Don't add DEBUG_BEGIN_STMT if
!building_stmt_list_p ().

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

From-SVN: r258302

6 years agore PR target/84710 (ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno...
Jakub Jelinek [Tue, 6 Mar 2018 20:41:37 +0000 (21:41 +0100)]
re PR target/84710 (ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1896 with -O -fno-forward-propagate)

PR target/84710
* combine.c (try_combine): Use reg_or_subregno instead of handling
just paradoxical SUBREGs and REGs.

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

From-SVN: r258301

6 years agore PR fortran/56667 (Syntax error causes misleading message: "Expected PARAMETER...
Steven G. Kargl [Tue, 6 Mar 2018 19:05:48 +0000 (19:05 +0000)]
re PR fortran/56667 (Syntax error causes misleading message: "Expected PARAMETER symbol in complex constant")

2018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/56667
* primary.c (match_sym_complex_part): Give the matcher for an implied
do-loop a chance to run.

2018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/56667
* gfortran.dg/implied_do_2.f90: New test.
* gfortran.dg/coarray_8.f90: Update for new error message.

From-SVN: r258281

6 years agotrans.c (convert_with_check): Fix typo in the condition guarding the overflow check...
Eric Botcazou [Tue, 6 Mar 2018 12:21:27 +0000 (12:21 +0000)]
trans.c (convert_with_check): Fix typo in the condition guarding the overflow check emitted for the upper...

* gcc-interface/trans.c (convert_with_check): Fix typo in the condition
guarding the overflow check emitted for the upper bound of a floating-
point conversion.

From-SVN: r258277

6 years ago* gcc-interface/utils.c (def_builtin_1): Bail out on error_mark_node.
Eric Botcazou [Tue, 6 Mar 2018 12:09:33 +0000 (12:09 +0000)]
* gcc-interface/utils.c (def_builtin_1): Bail out on error_mark_node.

From-SVN: r258276

6 years ago[ARC] Cleanup unused functions.
Claudiu Zissulescu [Tue, 6 Mar 2018 11:50:16 +0000 (12:50 +0100)]
[ARC] Cleanup unused functions.

Remove unused pieces of code.

gcc/
2018-03-06  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_finalize_pic): Remove function.
(arc_must_save_register): We use single base PIC register, remove
checks to save/restore the PIC register.
(arc_expand_prologue): Likewise.
* config/arc/arc-protos.h (arc_set_default_type_attributes):
Remove.
(arc_verify_short): Likewise.
(arc_attr_type): Likewise.
* config/arc/arc.c (arc_set_default_type_attributes): Remove.
(walk_stores): Likewise.
(arc_address_cost): Make it static.
(arc_verify_short): Likewise.
(branch_dest): Likewise.
(arc_attr_type): Likewise.
* config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove.
(TARGET_INSN_LENGTH_PARAMETERS): Likewise.
(arc_final_prescan_insn): Remove inserting the nops due to
hardware hazards.  It is done in reorg step.
(insn_length_variant_t): Remove.
(insn_length_parameters_t): Likewise.
(arc_insn_length_parameters): Likewise.
(arc_get_insn_variants): Likewise.
* config/arc/arc.h (TARGET_UPSIZE_DBR): Remove.

From-SVN: r258275

6 years agore PR inline-asm/84683 (internal compiler error: in move_for_stack_reg, at reg-stack...
Jakub Jelinek [Tue, 6 Mar 2018 09:23:36 +0000 (10:23 +0100)]
re PR inline-asm/84683 (internal compiler error: in move_for_stack_reg, at reg-stack.c:1173)

PR inline-asm/84683
* reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid
assertion failure.

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

From-SVN: r258273

6 years agore PR tree-optimization/84687 (error: invalid conversion in gimple call with -O3...
Jakub Jelinek [Tue, 6 Mar 2018 07:06:44 +0000 (08:06 +0100)]
re PR tree-optimization/84687 (error: invalid conversion in gimple call with -O3 and -ffast-math)

PR tree-optimization/84687
* omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS
on new_node->decl.
* match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization.

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

From-SVN: r258272

6 years ago[C++] [PR84231] overload on cond_expr in template
Alexandre Oliva [Tue, 6 Mar 2018 06:25:12 +0000 (06:25 +0000)]
[C++] [PR84231] overload on cond_expr in template

A non-type-dependent COND_EXPR within a template is reconstructed with
the original operands, after one with non-dependent proxies is built to
determine its result type.  This is problematic because the operands of
a COND_EXPR determined to be an rvalue may have been converted to denote
their rvalue nature.  The reconstructed one, however, won't have such
conversions, so lvalue_kind may not recognize it as an rvalue, which may
lead to e.g. incorrect overload resolution decisions.

If we mistake such a COND_EXPR for an lvalue, overload resolution might
regard a conversion sequence that binds it to a non-const reference as
viable, and then select that over one that binds it to a const
reference.  Only after template substitution would we rebuild the
COND_EXPR, realize it is an rvalue, and conclude the reference binding
is ill-formed, but at that point we'd have long discarded any alternate
candidates we could have used.

This patch modifies the logic that determines whether a
(non-type-dependent) COND_EXPR in a template is an lvalue, to rely on
its type, more specifically, on the presence of a REFERENCE_TYPE
wrapper.  In order to avoid a type bootstrapping problem, the
REFERENCE_TYPE that wraps the type of some such COND_EXPRs is
introduced earlier, so that we don't have to test for lvalueness of
the expression using the very code that we wish to change.

for  gcc/cp/ChangeLog

PR c++/84231
* tree.c (lvalue_kind): Use presence/absence of REFERENCE_TYPE
only while processing template decls.
* typeck.c (build_x_conditional_expr): Move wrapping of
reference type around type...
* call.c (build_conditional_expr_1): ... here.  Rename
is_lvalue to is_glvalue.
* parser.c (cp_parser_fold_expression): Catch REFERENCE_REF_P
INDIRECT_REF of COND_EXPR too.

for  gcc/testsuite/ChangeLog

PR c++/84231
* g++.dg/pr84231.C: New.

From-SVN: r258271

6 years ago[PR c++/84593] ice on braced init with uninit ref field
Alexandre Oliva [Tue, 6 Mar 2018 06:24:53 +0000 (06:24 +0000)]
[PR c++/84593] ice on braced init with uninit ref field

If an initializer expr is to be NULL in a ctor initializer list, we
ICE in picflag_from_initializer and elsewhere.

If we're missing an initializer for a reference field, we report the
error, but then build a zero initializer to avoid the ICE.

for  gcc/cp/ChangeLog

PR c++/84593
* init.c (build_zero_init_1): Zero-initialize references.

for  gcc/testsuite/ChangeLog

PR c++/84593
* g++.dg/cpp1y/pr84593.C: New.

From-SVN: r258270

6 years ago[PR c++/84492] stmt expr ending with overload
Alexandre Oliva [Tue, 6 Mar 2018 06:24:40 +0000 (06:24 +0000)]
[PR c++/84492] stmt expr ending with overload

We ICEd when returning a stmt expr that ends with an overloaded
function, because instantiate_type did not know what to do with
STMT_EXPRs.  And it shouldn't have to: the expected type of a stmt
expr cannot be used to resolve its value: an unresolved overload
cannot supply the result of a stmt expr.  Catch that and report the
error in the stmt expr before we have a chance to instantiate it.

for  gcc/cp/ChangeLog

PR c++/84492
* semantics.c (finish_stmt_expr_expr): Reject unresolved
overloads used as stmt expr values.

for  gcc/testsuite/ChangeLog

PR c++/84492
* g++.dg/pr84492.C: New.

From-SVN: r258269

6 years agors6000-builtin.def (rs6000_speculation_barrier): Rename to ppc_speculation_barrier.
Bill Schmidt [Tue, 6 Mar 2018 01:56:41 +0000 (01:56 +0000)]
rs6000-builtin.def (rs6000_speculation_barrier): Rename to ppc_speculation_barrier.

[gcc]

2018-03-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier):
Rename to ppc_speculation_barrier.
* config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to
__builtin_ppc_speculation_barrier.

[gcc/testsuite]

2018-03-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/spec-barr-1.c: Change called function name to
__builtin_ppc_speculation_barrier.

From-SVN: r258268

6 years agoDaily bump.
GCC Administrator [Tue, 6 Mar 2018 00:16:23 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r258267

6 years agoPR c++/84708 - ICE with lambda in local class NSDMI.
Jason Merrill [Mon, 5 Mar 2018 22:14:38 +0000 (17:14 -0500)]
PR c++/84708 - ICE with lambda in local class NSDMI.

* lambda.c (lambda_expr_this_capture): Handle local class NSDMI
context.

From-SVN: r258264

6 years agore PR target/84700 (ICE on 32-bit BE powerpc targets w/ -misel -O1)
Jakub Jelinek [Mon, 5 Mar 2018 22:13:58 +0000 (23:13 +0100)]
re PR target/84700 (ICE on 32-bit BE powerpc targets w/ -misel -O1)

PR target/84700
* combine.c (combine_simplify_rtx): Don't try to simplify if
if_then_else_cond returned non-NULL, but either true_rtx or false_rtx
are equal to x.

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

From-SVN: r258263

6 years agore PR c++/84684 (inserting random code / flags produces wrong code)
Jakub Jelinek [Mon, 5 Mar 2018 22:12:45 +0000 (23:12 +0100)]
re PR c++/84684 (inserting random code / flags produces wrong code)

PR c++/84684
* constexpr.c (constexpr_call_hasher::equal): Return false if
lhs->hash != rhs->hash.  Change return 1 to return true and
return 0 to return false.

From-SVN: r258262

6 years agors6000: Don't align tiny loops to 32 bytes for POWER9
Segher Boessenkool [Mon, 5 Mar 2018 19:11:54 +0000 (20:11 +0100)]
rs6000: Don't align tiny loops to 32 bytes for POWER9

For POWER4..POWER8 we align loops of 5..8 instructions to 32 bytes
(instead of to 16 bytes) because that executes faster.  This is no
longer the case on POWER9, so we can just as well only align to 16
bytes.

* config/rs6000/rs6000.c (rs6000_loop_align): Don't align tiny loops
to 32 bytes when compiling for POWER9.

From-SVN: r258260

6 years agolibgo: fix typo in mksysinfo.sh script
Ian Lance Taylor [Mon, 5 Mar 2018 18:44:44 +0000 (18:44 +0000)]
libgo: fix typo in mksysinfo.sh script

    Fix a small typo in the mksysinfo.sh script (incorrect input
    file for a grep command).

    Reviewed-on: https://go-review.googlesource.com/98635

From-SVN: r258259

6 years ago[PR c++/84702] ICE with default tmpl arg of overload set
Nathan Sidwell [Mon, 5 Mar 2018 18:44:24 +0000 (18:44 +0000)]
[PR c++/84702] ICE with default tmpl arg of overload set

https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00227.html
PR c++/84702
* pt.c (process_template_arg): Mark lookup_keep on a default arg.

PR c++/84702
* g++.dg/lookup/pr84702.C: New.

From-SVN: r258258

6 years agore PR target/84564 (error: unable to find a register to spill with -mforce-indirect...
Jakub Jelinek [Mon, 5 Mar 2018 16:24:43 +0000 (17:24 +0100)]
re PR target/84564 (error: unable to find a register to spill with -mforce-indirect-call)

PR target/84564
* config/i386/i386.c (ix86_function_ok_for_sibcall): Check for
regparm >= 3 with no arg reg available also for calls with
flag_force_indirect_call.  Pass decl to ix86_function_regparm.

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

From-SVN: r258256

6 years agore PR c++/84707 (internal compiler error: Segmentation fault (tree_check()/duplicate_...
Marek Polacek [Mon, 5 Mar 2018 16:15:35 +0000 (16:15 +0000)]
re PR c++/84707 (internal compiler error: Segmentation fault (tree_check()/duplicate_decls()))

PR c++/84707
* decl.c (duplicate_decls): Check DECL_NAME before accessing
UDLIT_OPER_P.

* g++.dg/cpp0x/inline-ns10.C: New test.

From-SVN: r258255

6 years ago[PR c++/84694] ICE on template friend decl
Nathan Sidwell [Mon, 5 Mar 2018 16:12:07 +0000 (16:12 +0000)]
[PR c++/84694] ICE on template friend decl

https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00221.html
PR c++/84694
* friend.c (do_friend): Restore check for identifier_p inside
TEMPLATE_ID_EXPR.

PR c++/84694
* g++.dg/template/pr84694.C: New.

From-SVN: r258254

6 years agore PR target/84524 (-O3 causes behavior change)
Jakub Jelinek [Mon, 5 Mar 2018 16:01:03 +0000 (17:01 +0100)]
re PR target/84524 (-O3 causes behavior change)

PR target/84524
* config/i386/sse.md (*<code><mode>3): Replace <mask_prefix3> with
orig,vex.
(*<plusminus_insn><mode>3): Likewise.  Remove <mask_operand3> uses.

* gcc.c-torture/execute/pr84524.c: New test.
* gcc.target/i386/avx512bw-pr84524.c: New test.

From-SVN: r258252

6 years agore PR target/84264 (ICE in rs6000_emit_le_vsx_store, at config/rs6000/rs6000.c:10367...
Peter Bergner [Mon, 5 Mar 2018 15:52:11 +0000 (09:52 -0600)]
re PR target/84264 (ICE in rs6000_emit_le_vsx_store, at config/rs6000/rs6000.c:10367 starting with r256656)

gcc/
PR target/84264
* config/rs6000/vector.md (mov<mode>): Disallow altivec memory operands.

gcc/testsuite/
PR target/84264
* g++.dg/pr84264.C: New test.

From-SVN: r258251

6 years agore PR c++/84618 (ICE in build_capture_proxy, at cp/lambda.c:460)
Paolo Carlini [Mon, 5 Mar 2018 15:40:15 +0000 (15:40 +0000)]
re PR c++/84618 (ICE in build_capture_proxy, at cp/lambda.c:460)

/cp
2018-03-05  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84618
* parser.c (cp_parser_lambda_introducer): Reject any capture not
involving a VAR_DECL or a PARM_DECL.

/testsuite
2018-03-05  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84618
* g++.dg/cpp0x/lambda/lambda-ice29.C: New.
* g++.dg/cpp0x/lambda/lambda-ice17.C: Adjust.
* g++.dg/cpp0x/lambda/lambda-ice23.C: Likewise.

From-SVN: r258250

6 years agore PR tree-optimization/84486 (code hoisting removes alignment assumption)
Richard Biener [Mon, 5 Mar 2018 15:00:48 +0000 (15:00 +0000)]
re PR tree-optimization/84486 (code hoisting removes alignment assumption)

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

PR tree-optimization/84486
* tree-ssa-pre.c (create_expression_by_pieces): Remove dead code.
When inserting a __builtin_assume_aligned call set the LHS
SSA name alignment info accordingly.

From-SVN: r258249

6 years ago[AArch64] PR84114: Avoid reassociating FMA
Wilco Dijkstra [Mon, 5 Mar 2018 14:40:55 +0000 (14:40 +0000)]
[AArch64] PR84114: Avoid reassociating FMA

As discussed in the PR, the reassociation phase runs before FMAs are formed
and so can significantly reduce FMA opportunities.  Although reassociation
could be switched off, it helps in many cases, so a better alternative is to
only avoid reassociation of floating point additions.  This fixes the testcase
and gives 1% speedup on SPECFP2017, fixing the performance regression.

    gcc/
PR tree-optimization/84114
* config/aarch64/aarch64.c (aarch64_reassociation_width)
Avoid reassociation of FLOAT_MODE addition.

From-SVN: r258248

6 years agoEnable WBOINVD and PCONFIG instructions.
Olga Makhotina [Mon, 5 Mar 2018 14:37:54 +0000 (14:37 +0000)]
Enable WBOINVD and PCONFIG instructions.

2018-03-05  Olga Makhotina  <olga.makhotina@intel.com>

Enable WBOINVD and PCONFIG instructions.

gcc/
* common/config/i386/i386-common.c (OPTION_MASK_ISA_PCONFIG_SET,
OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_SET,
OPTION_MASK_ISA_WBNOINVD_UNSET): New definitions.
(ix86_handle_option): Handle -mpconfig and -mwbnoinvd.
* config.gcc (pconfigintrin.h, wbnoinvdintrin.h) : Add headers.
* config/i386/cpuid.h (bit_PCONFIG, bit_WBNOINVD): New.
* config/i386/driver-i386.c (host_detect_local_cpu): Detect -mpconfig
and -mwbnoinvd.
* config/i386/i386-builtin.def (__builtin_ia32_wbnoinvd,
__builtin_ia32_wbinvd): New builtins.
(SPECIAL_ARGS2): New.
* config/i386/i386-c.c (__WBNOINVD__, __PCONFIG__): New.
(SPECIAL_ARGS2): New.
* config/i386/i386.c (ix86_target_string): Add -mpconfig and -mwbnoinvd.
(ix86_valid_target_attribute_inner_p): Ditto.
(ix86_init_mmx_sse_builtins): Add special_args2.
* config/i386/i386.h (TARGET_PCONFIG, TARGET_PCONFIG_P, TARGET_WBNOINVD,
TARGET_WBNOINVD_P): New.
* config/i386/i386.md (UNSPECV_WBINVD, UNSPECV_WBNOINVD): New.
(define_insn "wbinvd", define_insn "wbnoinvd"): New.
* config/i386/i386.opt: Add -mpconfig and -mwbnoinvd.
* config/i386/immintrin.h (_wbinvd): New intrinsic.
* config/i386/pconfigintrin.h: New file.
* config/i386/wbnoinvdintrin.h: Ditto.
* config/i386/x86intrin.h: Add headers pconfigintrin.h and wbnoinvdintrin.h.
* doc/invoke.texi (-mpconfig, -mwbnoinvd): New.

gcc/testsuite/
* g++.dg/other/i386-2.C: Add -mpconfig and -mwbnoinvd.
* g++.dg/other/i386-3.C: Ditto.
* gcc.target/i386/sse-12.c: Ditto.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-14.c: Ditto.
* gcc.target/i386/sse-23.c: Add pconfig and wbnoinvd.
* gcc.target/i386/wbinvd-1.c: New test.
* gcc.target/i386/wbnoinvd-1.c: Ditto.
* gcc.target/i386/pconfig-1.c: Ditto.

From-SVN: r258247

6 years ago[PR c++/84497] ref to undefined tls init
Pádraig Brady [Mon, 5 Mar 2018 13:48:43 +0000 (13:48 +0000)]
[PR c++/84497] ref to undefined tls init

https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00209.html
PR c++/84497
* decl2.c (get_tls_init_fn): Check TYPE_HAS_TRIVIAL_DFLT too.

PR c++/84497
* g++.dg/cpp0x/pr84497.C: New.

Co-Authored-By: Jason Merrill <jason@redhat.com>
Co-Authored-By: Nathan Sidwell <nathan@acm.org>
From-SVN: r258244

6 years agore PR tree-optimization/84670 (ICE: in compute_antic_aux, at tree-ssa-pre.c:2148...
Richard Biener [Mon, 5 Mar 2018 13:18:12 +0000 (13:18 +0000)]
re PR tree-optimization/84670 (ICE: in compute_antic_aux, at tree-ssa-pre.c:2148 with -O2 -fno-tree-dominator-opts)

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

PR tree-optimization/84670
* tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs
member.
(BB_VISITED_WITH_VISITED_SUCCS): New define.
(compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS.
(compute_antic_aux): Only assert the number of values in ANTIC_IN
doesn't grow if all successors (recursively) were visited at least
once.

* gcc.dg/pr84670-1.c: New testcase.
* gcc.dg/pr84670-2.c: Likewise.
* gcc.dg/pr84670-3.c: Likewise.
* gcc.dg/pr84670-4.c: Likewise.

From-SVN: r258243

6 years agore PR tree-optimization/84650 ([graphite] ICE: Segmentation fault (in create_new_iv))
Richard Biener [Mon, 5 Mar 2018 12:49:07 +0000 (12:49 +0000)]
re PR tree-optimization/84650 ([graphite] ICE: Segmentation fault (in create_new_iv))

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

PR tree-optimization/84650
* tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache
if executed in the loop pipeline.

* gcc.dg/graphite/pr84650.c: New testcase.

From-SVN: r258242

6 years agore PR c++/82022 (constexpr lambda in template context: expression ‘<lambda>’ is not...
Paolo Carlini [Mon, 5 Mar 2018 10:19:11 +0000 (10:19 +0000)]
re PR c++/82022 (constexpr lambda in template context: expression ‘<lambda>’ is not a constant expression)

2018-03-05  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/82022
* g++.dg/cpp1z/constexpr-lambda20.C: New.

From-SVN: r258241

6 years agoconfigfiles.texi (Configuration Files): Move info about conditionalizing $target...
Sandra Loosemore [Mon, 5 Mar 2018 06:31:24 +0000 (01:31 -0500)]
configfiles.texi (Configuration Files): Move info about conditionalizing $target-protos.h to...

2018-03-05  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* doc/configfiles.texi (Configuration Files): Move info about
conditionalizing $target-protos.h to...
* doc/sourcebuild.texi (Back End): Here.  Explain how $target.h
differs from $target-protos.h.

From-SVN: r258240

6 years ago[NDS32] Implment setmem pattern.
Kito Cheng [Mon, 5 Mar 2018 02:27:30 +0000 (02:27 +0000)]
[NDS32] Implment setmem pattern.

gcc/
* config/nds32/nds32-protos.h (nds32_expand_setmem): Declare.
* config/nds32/nds32-multiple.md (setmemsi): Define.
* config/nds32/nds32-memory-manipulation.c
(nds32_gen_dup_4_byte_to_word_value): New.
(emit_setmem_word_loop): New.
(emit_setmem_byte_loop): New.
(nds32_expand_setmem_loop): New.
(nds32_expand_setmem_loop_v3m): New.
(nds32_expand_setmem_unroll): New.
(nds32_expand_setmem): New.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
From-SVN: r258239

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

From-SVN: r258238

6 years ago[NDS32] Rename nds32_expand_movmemqi to nds32_expand_movmemsi and rewrite its impleme...
Kito Cheng [Sun, 4 Mar 2018 16:43:09 +0000 (16:43 +0000)]
[NDS32] Rename nds32_expand_movmemqi to nds32_expand_movmemsi and rewrite its implementation.

gcc/
*config/nds32/nds32-memory-manipulation.c
(nds32_emit_load_store): New.
(nds32_emit_post_inc_load_store): New.
(nds32_emit_mem_move): New.
(nds32_emit_mem_move_block): New.
(nds32_expand_movmemsi_loop_unknown_size): New.
(nds32_expand_movmemsi_loop_known_size): New.
(nds32_expand_movmemsi_loop): New.
(nds32_expand_movmemsi_unroll): New.
(nds32_expand_movmemqi): Rename ...
(nds32_expand_movmemsi): ... to this.
*config/nds32/nds32-multiple.md (movmemqi): Rename ...
(movmemsi): ... to this.
*config/nds32/nds32-protos.h (nds32_expand_movmemqi): Rename ...
(nds32_expand_movmemsi): ... to this.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
From-SVN: r258235

6 years ago[NDS32] Refine load_multiple and store_multiple.
Kito Cheng [Sun, 4 Mar 2018 16:27:34 +0000 (16:27 +0000)]
[NDS32] Refine load_multiple and store_multiple.

gcc/
* config/nds32/nds32-protos.h
(nds32_expand_load_multiple): New arguments.
(nds32_expand_store_multiple): Ditto.
(nds32_valid_multiple_load_store): Rename ...
(nds32_valid_multiple_load_store_p): ... to this.
* config/nds32/nds32-memory-manipulation.c
(nds32_expand_load_multiple): Refine implementation.
(nds32_expand_store_multiple): Ditto.
* config/nds32/nds32-multiple.md
(load_multiple): Update nds32_expand_load_multiple interface.
(store_multiple): Update nds32_expand_store_multiple interface.
* config/nds32/nds32-predicates.c
(nds32_valid_multiple_load_store): Rename ...
(nds32_valid_multiple_load_store_p): ... to this and refine
implementation.
* config/nds32/predicates.md
(nds32_load_multiple_and_update_address_operation): New predicate.
(nds32_store_multiple_and_update_address_operation): New predicate.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
Co-Authored-By: Monk Chiang <sh.chiang04@gmail.com>
From-SVN: r258234

6 years ago[NDS32] Add load_multiple,store_multiple and new attribute combo.
Kito Cheng [Sun, 4 Mar 2018 07:58:34 +0000 (07:58 +0000)]
[NDS32] Add load_multiple,store_multiple and new attribute combo.

gcc/
* config/nds32/nds32.md (type): Add load_multiple and store_multiple.
(combo): New attribute.
* config/nds32/nds32-multiple.md: Refine patterns with new attributes.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
From-SVN: r258232

6 years agoPR c++/84686 - missing volatile loads.
Jason Merrill [Sun, 4 Mar 2018 05:32:39 +0000 (00:32 -0500)]
PR c++/84686 - missing volatile loads.

* cvt.c (convert_to_void): Call maybe_undo_parenthesized_ref.

From-SVN: r258231

6 years agore PR fortran/71085 (ICE with some intrinsic functions specifying array function...
Harald Anlauf [Sun, 4 Mar 2018 01:37:13 +0000 (01:37 +0000)]
re PR fortran/71085 (ICE with some intrinsic functions specifying array function result dimension)

2018-03-03  Harald Anlauf  <anlauf@gmx.de>

PR fortran/71085
* trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not
dereference NULL pointer.

2018-03-03  Harald Anlauf  <anlauf@gmx.de>

PR fortran/71085
* gfortran.dg/pr71085.f90: New test.

From-SVN: r258228

6 years agoDaily bump.
GCC Administrator [Sun, 4 Mar 2018 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r258227

6 years agore PR fortran/66128 (ICE for some intrinsics with zero sized array parameter)
Steven G. Kargl [Sat, 3 Mar 2018 19:59:54 +0000 (19:59 +0000)]
re PR fortran/66128 (ICE for some intrinsics with zero sized array parameter)

2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66128
* gfortran.dg/zero_sized_8.f90: Really commit new test.

From-SVN: r258224

6 years agore PR fortran/66128 (ICE for some intrinsics with zero sized array parameter)
Steven G. Kargl [Sat, 3 Mar 2018 19:49:20 +0000 (19:49 +0000)]
re PR fortran/66128 (ICE for some intrinsics with zero sized array parameter)

2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66128
* simplify.c (is_size_zero_array): New function to check for size
zero array.
(gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
 gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
 gfc_simplify_minval, gfc_simplify_maxval, gfc_simplify_norm2,
 gfc_simplify_product, gfc_simplify_sum): Use it, and implement
requirements from F2018.

2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66128
* gfortran.dg/zero_sized_8.f90: New test.

From-SVN: r258223

6 years ago* da.po: Update.
Joseph Myers [Sat, 3 Mar 2018 18:55:20 +0000 (18:55 +0000)]
* da.po: Update.

From-SVN: r258221

6 years agore PR fortran/51434 (ICE with scalar init of an array parameter, used in DT default...
Steven G. Kargl [Sat, 3 Mar 2018 18:20:32 +0000 (18:20 +0000)]
re PR fortran/51434 (ICE with scalar init of an array parameter, used in DT default init with transfer)

2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/51434
* simplify.c (gfc_simplify_transfer): Resolve mold.

2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/51434
* gfortran.dg/pr51434.f90: New test.

From-SVN: r258220

6 years agore PR c++/61358 (Bogus "duplicate label" error after label used within C++11 lambda)
Paolo Carlini [Sat, 3 Mar 2018 18:18:25 +0000 (18:18 +0000)]
re PR c++/61358 (Bogus "duplicate label" error after label used within C++11 lambda)

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

PR c++/61358
* g++.dg/cpp0x/lambda/lambda-61358.C: New.

From-SVN: r258219

6 years agore PR c++/67370 (Invalid "parameter packs not expanded" error in lambda capture)
Paolo Carlini [Sat, 3 Mar 2018 18:09:27 +0000 (18:09 +0000)]
re PR c++/67370 (Invalid "parameter packs not expanded" error in lambda capture)

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

PR c++/67370
* g++.dg/cpp0x/lambda/lambda-67370.C: New.

From-SVN: r258218

6 years agore PR c++/71464 (ICE on invalid code (with redeclared constructor) at -Os: Segmentati...
Paolo Carlini [Sat, 3 Mar 2018 17:48:23 +0000 (17:48 +0000)]
re PR c++/71464 (ICE on invalid code (with redeclared constructor) at -Os: Segmentation fault)

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

PR c++/71464
* optimize.c (maybe_thunk_body): Bail out immediately if either
fns[0] or fns[1] is null.

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

PR c++/71464
* g++.dg/torture/pr71464.C: New.

From-SVN: r258216

6 years ago[NDS32] Change to large model by default.
Chung-Ju Wu [Sat, 3 Mar 2018 16:47:10 +0000 (16:47 +0000)]
[NDS32] Change to large model by default.

gcc/
* config/nds32/nds32.opt: Change -mcmodel= default value.

From-SVN: r258215

6 years ago[NDS32] Add intrinsic functions for unalignment memory access.
Kito Cheng [Sat, 3 Mar 2018 16:38:14 +0000 (16:38 +0000)]
[NDS32] Add intrinsic functions for unalignment memory access.

gcc/
* config/nds32/constants.md (unspec_element): New enum.
* config/nds32/constraints.md (Umw): New constraint.
* config/nds32/nds32-intrinsic.c: Add more builtin functions.
* config/nds32/nds32-intrinsic.md: Likewise.
* config/nds32/nds32-md-auxiliary.c (nds32_regno_to_enable4): New.
(nds32_valid_smw_lwm_base_p): New.
(nds32_output_smw_single_word): New.
(nds32_output_lmw_single_word): New.
(nds32_expand_unaligned_load): New.
(nds32_expand_unaligned_store): New.
* config/nds32/nds32-protos.h (nds32_valid_smw_lwm_base_p): Declare.
(nds32_output_smw_single_word): Declare.
(nds32_output_lmw_single_word): Declare.
(nds32_expand_unaligned_load): Declare.
(nds32_expand_unaligned_store): Declare.
* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_UALOAD_HW,
NDS32_BUILTIN_UALOAD_W, NDS32_BUILTIN_UALOAD_DW,
NDS32_BUILTIN_UASTORE_HW, NDS32_BUILTIN_UASTORE_W,
NDS32_BUILTIN_UASTORE_DW.
* config/nds32/predicates.md (nds32_lmw_smw_base_operand): New
predicate.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
Co-Authored-By: Monk Chiang <sh.chiang04@gmail.com>
From-SVN: r258214

6 years ago[NDS32] Rewrite infrastructure for intrinsic.
Monk Chiang [Sat, 3 Mar 2018 16:05:25 +0000 (16:05 +0000)]
[NDS32] Rewrite infrastructure for intrinsic.

gcc/
* config/nds32/nds32-intrinsic.c
(nds32_expand_builtin_null_ftype_reg): Delete.
(nds32_expand_builtin_reg_ftype_imm): Ditto.
(nds32_expand_builtin_null_ftype_reg_imm): Ditto.
(nds32_read_argument): New.
(nds32_legitimize_target): Ditto.
(nds32_legitimize_argument): Ditto.
(nds32_check_constant_argument): Ditto.
(nds32_expand_unop_builtin): Ditto.
(nds32_expand_unopimm_builtin): Ditto.
(nds32_expand_binop_builtin): Ditto.
(nds32_builtin_decl_impl): Ditto.
(builtin_description): Ditto.
(nds32_expand_builtin_impl): Rewrite with new infrastructure.
(nds32_init_builtins_impl): Ditto.
* config/nds32/nds32.c (TARGET_BUILTIN_DECL): Define.
(nds32_builtin_decl): New.
* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_COUNT.
* config/nds32/nds32-protos.h (nds32_builtin_decl_impl): Declare.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>
From-SVN: r258211

6 years agore PR fortran/80965 (ICE with class argument and -O2 optimization)
Paul Thomas [Sat, 3 Mar 2018 13:34:10 +0000 (13:34 +0000)]
re PR fortran/80965 (ICE with class argument and -O2 optimization)

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

PR fortran/80965
* resolve.c (build_loc_call): Change symtree name from 'loc' to
'_loc'.

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

PR fortran/80965
* gfortran.dg/select_type_41.f90: New test.

From-SVN: r258195

6 years agore PR c++/61135 (It seems to be not able to call virtual method of literal object...
Paolo Carlini [Sat, 3 Mar 2018 00:28:03 +0000 (00:28 +0000)]
re PR c++/61135 (It seems to be not able to call virtual method of literal object in lambda expression)

2018-03-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/61135
* g++.dg/cpp0x/lambda/lambda-61135.C: New.

From-SVN: r258165

6 years agoDaily bump.
GCC Administrator [Sat, 3 Mar 2018 00:16:23 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r258163

6 years ago* es.po: Update.
Joseph Myers [Fri, 2 Mar 2018 23:55:25 +0000 (23:55 +0000)]
* es.po: Update.

From-SVN: r258160

6 years agoreorg.c (stop_search_p): Handle DEBUG_INSN.
Jeff Law [Fri, 2 Mar 2018 23:47:56 +0000 (16:47 -0700)]
reorg.c (stop_search_p): Handle DEBUG_INSN.

* reorg.c (stop_search_p): Handle DEBUG_INSN.
(redundant_insn, fill_simple_delay_slots): Likewise.
(fill_slots_from_thread): Likewise.
* resource.c (mark_referenced_resources): Likewise.
(mark_set_resources, find_dead_or_set_registers): Likewise.

From-SVN: r258158

6 years agoPR libstdc++/84671 handle digit separators in duration literals
Jonathan Wakely [Fri, 2 Mar 2018 20:38:50 +0000 (20:38 +0000)]
PR libstdc++/84671 handle digit separators in duration literals

PR libstdc++/84671
* include/bits/parse_numbers.h (_Number_help): Add partial
specialization to handle digit separators. Adjust partial
specialization for recursion temrination to require _Pow == 1ULL.
* testsuite/20_util/duration/literals/84671.cc: New

From-SVN: r258157

6 years agore PR c++/84578 (ICE with flexible array member and constexpr)
Marek Polacek [Fri, 2 Mar 2018 20:27:46 +0000 (20:27 +0000)]
re PR c++/84578 (ICE with flexible array member and constexpr)

PR c++/84578
* constexpr.c (get_array_or_vector_nelts): New.
(cxx_eval_array_reference): Use it.
(cxx_eval_vec_init_1): Likewise.
(cxx_eval_store_expression): Likewise.

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

From-SVN: r258156

6 years agolibiberty: fix URL for demangler ABI
David Malcolm [Fri, 2 Mar 2018 20:20:37 +0000 (20:20 +0000)]
libiberty: fix URL for demangler ABI

libiberty/ChangeLog:
* cp-demangle.c: Update URL for g++ V3 ABI.

From-SVN: r258155

6 years agosubstring-locations.h (format_warning_va): Formatting fix for ATTRIBUTE_GCC_DIAG.
Jakub Jelinek [Fri, 2 Mar 2018 19:04:58 +0000 (20:04 +0100)]
substring-locations.h (format_warning_va): Formatting fix for ATTRIBUTE_GCC_DIAG.

* substring-locations.h (format_warning_va): Formatting fix for
ATTRIBUTE_GCC_DIAG.
(format_warning_at_substring): Fix up ATTRIBUTE_GCC_DIAG second
argument.
(format_warning_n_va, format_warning_at_substring_n): New prototypes.
* substring-locations.c: Include intl.h.
(format_warning_va): Turned into small wrapper around
format_warning_n_va, renamed to ...
(format_warning_n_va): ... this, add N and PLURAL_GMSGID arguments,
rename GMSGID to SINGULAR_GMSGID, if SINGULAR_GMSGID != PLURAL_GMSGID,
use ngettext.
(format_warning_at_substring_n): New function.
* gimple-ssa-sprintf.c: Remove GCC diagnostic ignored pragma.
(fmtwarn): Add ATTRIBUTE_GCC_DIAG.  Turn into a copy of
format_warning_at_substring with just a shorter name instead of
const function pointer.
(fmtwarn_n): New function.
(maybe_warn, format_directive, parse_directive): Use fmtwarn_n where
appropriate, get rid of all the fmtstr temporaries, move conditionals
with G_() wrapped string literals directly into fmtwarn arguments,
cast dir.len to (int), formatting fixes.

From-SVN: r258154

6 years ago* c-c++-common/Warray-bounds-2.c: Fix a comment typo.
Jakub Jelinek [Fri, 2 Mar 2018 19:04:10 +0000 (20:04 +0100)]
* c-c++-common/Warray-bounds-2.c: Fix a comment typo.

From-SVN: r258153

6 years ago* semantics.c (force_paren_expr): Remove redundant test.
Jason Merrill [Fri, 2 Mar 2018 18:18:13 +0000 (13:18 -0500)]
* semantics.c (force_paren_expr): Remove redundant test.

From-SVN: r258151

6 years agore PR middle-end/81812 (Empty virtual function fails to compile)
Paolo Carlini [Fri, 2 Mar 2018 18:06:44 +0000 (18:06 +0000)]
re PR middle-end/81812 (Empty virtual function fails to compile)

2018-03-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/81812
* g++.dg/torture/pr81812.C: New.

From-SVN: r258150

6 years agore PR c++/84664 (internal compiler error: in cp_perform_integral_promotions, at cp...
Marek Polacek [Fri, 2 Mar 2018 17:55:28 +0000 (17:55 +0000)]
re PR c++/84664 (internal compiler error: in cp_perform_integral_promotions, at cp/typeck.c:2172)

PR c++/84664
* typeck.c (cp_perform_integral_promotions): Check the result of
mark_rvalue_use.

* g++.dg/cpp0x/lambda/lambda-ice28.C: New test.

From-SVN: r258149

6 years agore PR c++/84663 (internal compiler error: tree check: expected array_type, have error...
Marek Polacek [Fri, 2 Mar 2018 17:54:23 +0000 (17:54 +0000)]
re PR c++/84663 (internal compiler error: tree check: expected array_type, have error_mark in cp_complete_array_type, at cp/decl.c:8334)

PR c++/84663
* decl.c (cp_complete_array_type): Check error_mark_node.

* g++.dg/parse/array-size3.C: New test.

From-SVN: r258148

6 years agore PR c++/84171 (ICE with -Wsign-compare)
Marek Polacek [Fri, 2 Mar 2018 17:51:24 +0000 (17:51 +0000)]
re PR c++/84171 (ICE with -Wsign-compare)

PR c++/84171
* c-warn.c (warn_for_sign_compare): Bail out if any of the operands
is erroneous.

* g++.dg/warn/Wsign-compare-8.C: New test.

From-SVN: r258147

6 years agore PR c++/84662 (internal compiler error: tree check: expected class 'type', have...
Jakub Jelinek [Fri, 2 Mar 2018 17:07:39 +0000 (18:07 +0100)]
re PR c++/84662 (internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in is_bitfield_expr_with_lowered_type, at cp/typeck.c:1944)

PR c++/84662
* pt.c (tsubst_copy_and_build) <case TEMPLATE_ID_EXPR>: Use
RETURN instead of return.
<case POINTER_PLUS_EXPR>: Likewise.
<case CONVERT_EXPR>: If op0 is error_mark_node, just return
it instead of wrapping it into CONVERT_EXPR.

* g++.dg/cpp1y/pr84662.C: New test.

From-SVN: r258146

6 years agoFix MIPS16 ICE.
Jason Merrill [Fri, 2 Mar 2018 16:54:23 +0000 (11:54 -0500)]
Fix MIPS16 ICE.

* pt.c (type_dependent_expression_p): Check DECL_LANG_SPECIFIC.

From-SVN: r258143

6 years agoFix "dg-lto-options" misuse
Thomas Schwinge [Fri, 2 Mar 2018 16:35:36 +0000 (17:35 +0100)]
Fix "dg-lto-options" misuse

gcc/testsuite/
* g++.dg/lto/20080915_0.C: Don't use "dg-lto-options".
* g++.dg/lto/20080907_0.C: Use "#pragma GCC" instead of
"dg-lto-options".
* g++.dg/lto/20101010-1_0.C: Likewise.
* g++.dg/lto/20101010-2_0.C: Likewise.

Reviewed-by: Jason Merrill <jason@redhat.com>
From-SVN: r258142

6 years agoMore Cilk Plus removal
Thomas Schwinge [Fri, 2 Mar 2018 16:35:26 +0000 (17:35 +0100)]
More Cilk Plus removal

contrib/
* update-copyright.py: Remove "libcilkrts" reference.
gcc/c-family/
* c-attribs.c (c_common_attribute_table): Remove "cilk simd
function".
gcc/
* doc/invoke.texi: Remove "Cilk Plus" references.

From-SVN: r258141

6 years agore PR ipa/84628 (attribute(warning/error) functions should not be merged together)
Jakub Jelinek [Fri, 2 Mar 2018 16:19:43 +0000 (17:19 +0100)]
re PR ipa/84628 (attribute(warning/error) functions should not be merged together)

PR ipa/84628
* expr.c (expand_expr_real_1) <case CALL_EXPR>: Don't emit diagnostics
for error or warning attributes if CALL_FROM_THUNK_P is set.
Formatting fixes.

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

Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r258140

6 years agore PR target/56540 (No __SIZEOF__XXX__ macro for __float128)
Jakub Jelinek [Fri, 2 Mar 2018 16:18:06 +0000 (17:18 +0100)]
re PR target/56540 (No __SIZEOF__XXX__ macro for __float128)

PR target/56540
* config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Predefine
__SIZEOF_128__ macro if HPUX_LONG_DOUBLE_LIBRARY.

From-SVN: r258139

6 years agore PR target/56540 (No __SIZEOF__XXX__ macro for __float128)
Jakub Jelinek [Fri, 2 Mar 2018 16:17:18 +0000 (17:17 +0100)]
re PR target/56540 (No __SIZEOF__XXX__ macro for __float128)

PR target/56540
* config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Predefine
__SIZEOF_{FPREG,FLOAT{80,128}}__ macros.

* gcc.target/ia64/pr56540.c: New test.

From-SVN: r258138

6 years agoaltivec-7-be.c: Remove VSX content, allow 32-bit target.
Will Schmidt [Fri, 2 Mar 2018 15:18:54 +0000 (15:18 +0000)]
altivec-7-be.c: Remove VSX content, allow 32-bit target.

[testsuite]

2018-03-02  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/altivec-7-be.c: Remove VSX content, allow
32-bit target.
* gcc.target/powerpc/altivec-7.h: Remove VSX content.
* gcc.target/powerpc/vsx-7-be.c: New test (VSX content).
* gcc.target/powerpc/vsx-7.h: New include (VSX content).
* gcc.target/powerpc/altivec-7-le.c: Add vsx-7.h include.

From-SVN: r258137