platform/upstream/gcc.git
6 years agoMIPS: Fix wrong use of XINT instead of INTVAL
Matthew Fortune [Thu, 1 Mar 2018 11:37:35 +0000 (11:37 +0000)]
MIPS: Fix wrong use of XINT instead of INTVAL

This issue was caught with assert checking enabled but is not a
functional bug as XINT(x, 0) happens to overlay INTVAL(x) anyway.

gcc/
* config/mips/mips.c (mips_final_prescan_insn): Fix incorrect
XINT with INTVAL.
(mips_final_postscan_insn): Likewise.

From-SVN: r258099

6 years agore PR fortran/84219 (Failure to generate error for IO of transfer intrinsic, when...
Paul Thomas [Thu, 1 Mar 2018 11:06:18 +0000 (11:06 +0000)]
re PR fortran/84219 (Failure to generate error for IO of transfer intrinsic, when MOLD has derived type components.)

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

PR fortran/84219
* target-memory.c (gfc_interpret_derived): Assert that BT_VOID
components are caf tokens.
(gfc_target_interpret_expr): Treat BT_VOID expressions as
integers.

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

PR fortran/84219
* gfortran.dg/coarray_47.f90: New test.

From-SVN: r258098

6 years agore PR fortran/84538 (Array of derived type elements incorrectly accessed in function)
Paul Thomas [Thu, 1 Mar 2018 08:56:31 +0000 (08:56 +0000)]
re PR fortran/84538 (Array of derived type elements incorrectly accessed in function)

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

PR fortran/84538
* class.c (class_array_ref_detected): Remove the condition that
there be no reference after the array reference.
(find_intrinsic_vtab): Remove excess whitespace.
* trans-array.c (gfc_conv_scalarized_array_ref): Rename 'tmp'
as 'base and call build_class_array_ref earlier.

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

PR fortran/84538
* gfortran.dg/class_array_23.f03: New test.

From-SVN: r258097

6 years agoFix PR number in changelog entry
Richard Sandiford [Thu, 1 Mar 2018 08:31:45 +0000 (08:31 +0000)]
Fix PR number in changelog entry

From-SVN: r258096

6 years agore PR target/84528 (gcc.c-torture/execute/960419-2.c -O3 fails with -fno-omit-frame...
Richard Sandiford [Thu, 1 Mar 2018 08:30:20 +0000 (08:30 +0000)]
re PR target/84528 (gcc.c-torture/execute/960419-2.c -O3 fails with -fno-omit-frame-pointer)

2018-03-01  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/testsuite/
PR rtl-optimization/84528
* gcc.dg/torture/pr84538.c: Rename to...
* gcc.dg/torture/pr84528.c: ...this.

From-SVN: r258095

6 years agoTighten use of HARD_FRAME_POINTER_REGNUM in alias.c (PR 84538)
Richard Sandiford [Thu, 1 Mar 2018 08:22:06 +0000 (08:22 +0000)]
Tighten use of HARD_FRAME_POINTER_REGNUM in alias.c (PR 84538)

RTL code needs to be consistent about whether it uses the stack
pointer, the frame pointer or the argument pointer to access a
given part of the frame.  alias.c used this to divide accesses
into three independent areas.

The problem in the PR is that we did this for HARD_FRAME_POINTER_REGNUM
even when the register wasn't being used as a frame pointer.  We can't
do that because the frame pointer is then just any old allocatable
register and could certainly point to info accessed through the
argument pointer or stack pointer.

2018-03-01  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
PR rtl-optimization/84538
* alias.c (init_alias_target): Add commentary.
(init_alias_analysis): Only give HARD_FRAME_POINTER_REGNUM
a unique base value if the frame pointer is not eliminated
to the stack pointer.

gcc/testsuite/
PR rtl-optimization/84538
* gcc.dg/torture/pr84538.c: New test.

From-SVN: r258094

6 years agoFix liveness analysis in lra for spilled-into hard regs
Tom de Vries [Thu, 1 Mar 2018 05:51:08 +0000 (05:51 +0000)]
Fix liveness analysis in lra for spilled-into hard regs

2018-03-01  Tom de Vries  <tom@codesourcery.com>

PR rtl-optimization/83327
* lra-int.h (hard_regs_spilled_into): Declare.
* lra.c (hard_regs_spilled_into): Define.
(init_reg_info): Init hard_regs_spilled_into.
* lra-spills.c (assign_spill_hard_regs): Update hard_regs_spilled_into.
* lra-lives.c (make_hard_regno_born, make_hard_regno_dead)
(process_bb_lives): Handle hard_regs_spilled_into.
(lra_create_live_ranges_1): Before doing liveness propagation, clear
regs in all_hard_regs_bitmap if set in hard_regs_spilled_into.

From-SVN: r258093

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

From-SVN: r258092

6 years agoWarray-bounds-2.c: Declare helper static to avoid -fpic test failures.
Martin Sebor [Wed, 28 Feb 2018 23:39:52 +0000 (23:39 +0000)]
Warray-bounds-2.c: Declare helper static to avoid -fpic test failures.

gcc/testsuite/ChangeLog:

* c-c++-common/Warray-bounds-2.c: Declare helper static to avoid
-fpic test failures.
* c-c++-common/Wrestrict-2.c: Same.
* c-c++-common/Wstringop-truncation.c: Same.
* gcc.dg/Warray-bounds-22.c: Same.
* gcc.dg/Wstringop-overflow.c: Same.
* gcc.dg/attr-alloc_size-3.c (unsigned_range): Same.
(signed_range): Same.
(unsigned_anti_range): Same.
* gcc.dg/attr-alloc_size-4.c (unsigned_range): Same.
(signed_range): Same.
(unsigned_anti_range): Same.
* gcc.dg/attr-alloc_size-7.c: Same.
* gcc.dg/attr-alloc_size-8.c: Same.
* gcc.dg/builtin-alloc-size.c: Same.
* gcc.dg/builtin-stpncpy.c: Same.
* gcc.dg/builtins-nonnull.c: Same.
* gcc.dg/nonnull-4.c (g16_1_3_5_7_11_13): Same.
* gcc.dg/pr79214.c: Same.
* gcc.dg/tree-ssa/builtin-snprintf-warn-1.c: Same.
* gcc.dg/tree-ssa/builtin-snprintf-warn-2.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-5.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-11.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-12.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-13.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-14.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-15.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-19.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-9.c: Same.

From-SVN: r258089

6 years agoPR c++/71784 - ICE with ref-qualifier and explicit specialization.
Jason Merrill [Wed, 28 Feb 2018 21:34:07 +0000 (16:34 -0500)]
PR c++/71784 - ICE with ref-qualifier and explicit specialization.

* pt.c (determine_specialization): Check ref-qualifier.

From-SVN: r258085

6 years agoconfig.gcc (powerpc-ibm-aix7.1.*): New stanza.
David Edelsohn [Wed, 28 Feb 2018 20:00:03 +0000 (20:00 +0000)]
config.gcc (powerpc-ibm-aix7.1.*): New stanza.

* config.gcc (powerpc-ibm-aix7.1.*): New stanza.
(powerpc-ibm-aix[789]*): Default to AIX 7.2.
* config/rs6000/aix71.h (TARGET_DEFAULT): Revert to Power4 ISA.
* config/rs6000/aix72.h: New file.

From-SVN: r258082

6 years agore PR target/84014 (ICE in setup_min_max_allocno_live_range_point, at ira-build.c...
David Edelsohn [Wed, 28 Feb 2018 19:53:24 +0000 (19:53 +0000)]
re PR target/84014 (ICE in setup_min_max_allocno_live_range_point, at ira-build.c:2762)

        PR target/84014
        * gcc.target/powerpc/pr84014.c: Use ilp32, not -m32 option.

From-SVN: r258081

6 years agore PR c++/84609 (internal compiler error: in cp_parser_abort_tentative_parse, at...
Jakub Jelinek [Wed, 28 Feb 2018 18:57:38 +0000 (19:57 +0100)]
re PR c++/84609 (internal compiler error: in cp_parser_abort_tentative_parse, at cp/parser.c:28960 (cp_parser_member_declaration()))

PR c++/84609
* parser.c (cp_parser_attributes_opt): Formatting fix.
(cp_parser_skip_balanced_tokens, cp_parser_skip_gnu_attributes_opt,
cp_parser_skip_std_attribute_spec_seq, cp_parser_skip_attributes_opt):
New functions.
(cp_parser_member_declaration): Use cp_parser_skip_attributes_opt
instead of tentative parse to peek over optional attribute tokens
to check for CPP_COLON after them.

* g++.dg/cpp0x/pr84609.C: New test.

From-SVN: r258080

6 years agore PR c++/83871 (wrong code for attribute const and pure on distinct template special...
Jakub Jelinek [Wed, 28 Feb 2018 18:56:36 +0000 (19:56 +0100)]
re PR c++/83871 (wrong code for attribute const and pure on distinct template specializations)

PR c++/83871
PR c++/83503
* pt.c (INCLUDE_STRING): Remove define.
(warn_spec_missing_attributes): Use pretty_printer instead of
std::string.  Fix up inform call so that the list of attributes
is in %s argument.

From-SVN: r258079

6 years agogimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n instead of warning_at...
Jakub Jelinek [Wed, 28 Feb 2018 18:38:19 +0000 (19:38 +0100)]
gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n instead of warning_at with conditional singular and plural...

* gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n
instead of warning_at with conditional singular and plural messages
where possible.

From-SVN: r258078

6 years agoPR testsuite/84617 - new test cases g++.dg/ext/attr-const.C and g++.dg/ext/attr-pure...
Martin Sebor [Wed, 28 Feb 2018 18:28:53 +0000 (18:28 +0000)]
PR testsuite/84617 - new test cases g++.dg/ext/attr-const.C and g++.dg/ext/attr-pure.C fail

gcc/cp/ChangeLog:

* decl.c (duplicate_decls): Fully merge attributes const, pure,
and malloc.

gcc/testsuite/ChangeLog:

* g++.dg/ext/attr-malloc-3.C: New test.
* g++.dg/ext/attr-const.C: Adjust.  Xfail assertions failing due
to pre-existing problems.
* g++.dg/ext/attr-pure.C: Same.

From-SVN: r258077

6 years agore PR fortran/83901 (ICE in fold_convert_loc, at fold-const.c:2402)
Paul Thomas [Wed, 28 Feb 2018 17:36:20 +0000 (17:36 +0000)]
re PR fortran/83901 (ICE in fold_convert_loc, at fold-const.c:2402)

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

PR fortran/83901
* trans-stmt.c (trans_associate_var): Make sure that the se
expression is a pointer type before converting it to the symbol
backend_decl type.

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

PR fortran/83901
* gfortran.dg/associate_37.f90: New test.

PR fortran/83344
* gfortran.dg/associate_36.f90: Add Steve Kargl as contributer.

From-SVN: r258076

6 years agore PR target/52991 (attribute packed broken on mingw32?)
Jakub Jelinek [Wed, 28 Feb 2018 17:17:29 +0000 (18:17 +0100)]
re PR target/52991 (attribute packed broken on mingw32?)

PR target/52991
* stor-layout.c (update_alignment_for_field): For
targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield
&& !DECL_PACKED (field), do the alignment update, just use
only desired_align instead of MAX (type_align, desired_align)
as the alignment.
(place_field): Don't do known_align < desired_align handling
early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field
is non-NULL, instead do it after rli->prev_field handling and
only if not within a bitfield word.  For DECL_PACKED (field)
use type_align of BITS_PER_UNIT.

* gcc.dg/bf-ms-layout.c: Revert 2012-04-26 changes.
* gcc.dg/bf-ms-layout-2.c: Revert 2012-02-23 changes.
* gcc.dg/bf-ms-layout-4.c: New test.
* gcc.dg/bf-ms-layout-5.c: New test.

From-SVN: r258075

6 years agoaarch64.c (aarch64_emit_probe_stack_range): Remove superfluous parentheses and traili...
Eric Botcazou [Wed, 28 Feb 2018 16:45:53 +0000 (16:45 +0000)]
aarch64.c (aarch64_emit_probe_stack_range): Remove superfluous parentheses and trailing spaces.

* config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Remove
superfluous parentheses and trailing spaces.

From-SVN: r258074

6 years agoRemove config/i386/i386.opt from revision 258001 ChangeLog
H.J. Lu [Wed, 28 Feb 2018 16:19:51 +0000 (08:19 -0800)]
Remove config/i386/i386.opt from revision 258001 ChangeLog

Revision 258001 doesn't change config/i386/i386.opt.

From-SVN: r258073

6 years agore PR target/83399 (Power8 ICE During LRA with 2-op rtl pattern for lvx instruction)
Peter Bergner [Wed, 28 Feb 2018 15:43:41 +0000 (09:43 -0600)]
re PR target/83399 (Power8 ICE During LRA with 2-op rtl pattern for lvx instruction)

PR target/83399
* gcc.target/powerpc/pr83399.c: Only run on Linux.

From-SVN: r258071

6 years agore PR tree-optimization/84584 ([graphite] ICE: Segmentation fault (in dominated_by_p))
Richard Biener [Wed, 28 Feb 2018 15:33:33 +0000 (15:33 +0000)]
re PR tree-optimization/84584 ([graphite] ICE: Segmentation fault (in dominated_by_p))

2018-02-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/84584
* graphite-scop-detection.c (scop_detection::add_scop): Discard
SCoPs with fake exit edge.

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

From-SVN: r258070

6 years agoPR preprocessor/84517 allow double-underscore macros after string literals
Jonathan Wakely [Wed, 28 Feb 2018 15:27:17 +0000 (15:27 +0000)]
PR preprocessor/84517 allow double-underscore macros after string literals

gcc/testsuite:

PR preprocessor/84517
* g++.dg/cpp0x/udlit-macros.C: Expect a warning for ""__FILE__.

libcpp:

PR preprocessor/84517
* lex.c (is_macro_not_literal_suffix): New function.
(lex_raw_string, lex_string): Use is_macro_not_literal_suffix to
decide when to issue -Wliteral-suffix warnings.

From-SVN: r258069

6 years agoi-cexten.ads (Float_128): New type.
Eric Botcazou [Wed, 28 Feb 2018 14:31:02 +0000 (14:31 +0000)]
i-cexten.ads (Float_128): New type.

ada/
* libgnat/i-cexten.ads (Float_128): New type.
c-family/
* c-ada-spec.c (dump_ada_node) <NULLPTR_TYPE>: New case.
<REAL_TYPE>: Deal specifically with _Float128/__float128.

From-SVN: r258068

6 years agoc-ada-spec.c (dump_ada_double_name): New case.
Eric Botcazou [Wed, 28 Feb 2018 14:14:12 +0000 (14:14 +0000)]
c-ada-spec.c (dump_ada_double_name): New case.

* c-ada-spec.c (dump_ada_double_name) <ENUMERAL_TYPE>: New case.
(is_char_array): Take a type instead of a declaration.
(dump_ada_array_type): Likewise.
(is_simple_enum): Minor tweak.
(dump_ada_enum_type): New function extracted from...
(dump_ada_node) <ENUMERAL_TYPE>: ...here.  Invoke it.
<INTEGER_TYPE>: Remove unreachable code.
<RECORD_TYPE>: Likewise.  Minor tweaks.
(dump_nested_type) <ARRAY_TYPE>: Adjust to above changes.
<ENUMERAL_TYPE>: New case.
<RECORD_TYPE>: Factor out common code.
(dump_ada_declaration) <ARRAY_TYPE>: Adjust to above changes.
Minor tweaks.  Deal with enumeral types.
(dump_ada_structure): Minor tweaks.

From-SVN: r258067

6 years agoc-ada-spec.c (dump_ada_node): Do not use generic address for incomplete structures.
Eric Botcazou [Wed, 28 Feb 2018 13:59:44 +0000 (13:59 +0000)]
c-ada-spec.c (dump_ada_node): Do not use generic address for incomplete structures.

* c-ada-spec.c (dump_ada_node) <POINTER_TYPE>: Do not use generic
address for incomplete structures.
(dump_forward_type): Do not bail out for incomplete structures.
(dump_ada_declaration): Do not special-case incomplete structures
for subtypes.  Dump them as null records for types.

From-SVN: r258066

6 years agoc-ada-spec.c (dump_ada_import): Use boolean and fix formatting.
Eric Botcazou [Wed, 28 Feb 2018 13:53:54 +0000 (13:53 +0000)]
c-ada-spec.c (dump_ada_import): Use boolean and fix formatting.

* c-ada-spec.c (dump_ada_import): Use boolean and fix formatting.
(is_char_array): Fix formatting.
(dump_template_types): Likewise.
(dump_generic_ada_node): Rename into...
(dump_ada_node): ...this.
<POINTER_TYPE>: Remove superfluous space.  Use generic address for
incomplete structures and not for empty structures.  Do not use it
when forward declarations are needed.
(dump_forward_type): New function.
(dump_nested_types): Remove FORWARD parameter.  Do not consider
TREE_VISITED and do not generate a forward declaration.  Only dump
original nested types for nested declaration.
(dump_nested_type) <POINTER_TYPE>: Call dump_forward_type.
<ARRAY_TYPE>: Likewise if the component type is an anonymous pointer.
<RECORD_TYPE>: Do not consider TREE_VISITED.
(dump_ada_declaration): Use booleans and fix formatting throughout.
<TYPE_DECL>: Skip incomplete structures and not empty structures.
Call dump_forward_type instead of dump_nested_types for a typedef.
Remove superfluous check and adjust call to dump_nested_types.
<POINTER_TYPE>: Call dump_forward_type and fall through.
(dump_ada_struct_decl): Rename into...
(dump_ada_structure): ...this.  Do not special-case empty structures.

From-SVN: r258064

6 years agoFix timevar format and fix tests (PR testsuite/84597).
Martin Liska [Wed, 28 Feb 2018 13:45:59 +0000 (14:45 +0100)]
Fix timevar format and fix tests (PR testsuite/84597).

2018-02-28  Martin Liska  <mliska@suse.cz>

PR testsuite/84597
* timevar.c (timer::print): Fix format to properly print 100%
values.
2018-02-28  Martin Liska  <mliska@suse.cz>

PR testsuite/84597
* g++.dg/ext/timevar1.C: Fix pruned patterns.
* g++.dg/ext/timevar2.C: Likewise.

From-SVN: r258063

6 years agoc-ada-spec.c (dump_ada_import): Use boolean and fix formatting.
Eric Botcazou [Wed, 28 Feb 2018 13:43:38 +0000 (13:43 +0000)]
c-ada-spec.c (dump_ada_import): Use boolean and fix formatting.

* c-ada-spec.c (dump_ada_import): Use boolean and fix formatting.
(is_char_array): Fix formatting.
(dump_template_types): Likewise.
(dump_generic_ada_node): Rename into...
(dump_ada_node): ...this.
<POINTER_TYPE>: Remove superfluous space.  Use generic address for
incomplete structures and not for empty structures.  Do not use it
when forward declarations are needed.
(dump_forward_type): New function.
(dump_nested_types): Remove FORWARD parameter.  Do not consider
TREE_VISITED and do not generate a forward declaration.  Only dump
original nested types for nested declaration.
(dump_nested_type) <POINTER_TYPE>: Call dump_forward_type.
<ARRAY_TYPE>: Likewise if the component type is an anonymous pointer.
<RECORD_TYPE>: Do not consider TREE_VISITED.
(dump_ada_declaration): Use booleans and fix formatting throughout.
<TYPE_DECL>: Skip incomplete structures and not empty structures.
Call dump_forward_type instead of dump_nested_types for a typedef.
Remove superfluous check and adjust call to dump_nested_types.
<POINTER_TYPE>: Call dump_forward_type and fall through.
(dump_ada_struct_decl): Rename into...
(dump_ada_structure): ...this.  Do not special-case empty structures.

From-SVN: r258062

6 years agore PR c/84607 (Side effects discarded in address computation inside 'if')
Richard Biener [Wed, 28 Feb 2018 13:40:41 +0000 (13:40 +0000)]
re PR c/84607 (Side effects discarded in address computation inside 'if')

2018-02-28  Richard Biener  <rguenther@suse.de>

PR middle-end/84607
* genmatch.c (capture_info::walk_match): Do not mark
captured expressions without operands as expr_p given
they act more like predicates and should be subject to
"lost tail" side-effect preserving.

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

From-SVN: r258061

6 years ago[PR c++/84602] ICE with anon-struct
Nathan Sidwell [Wed, 28 Feb 2018 12:32:10 +0000 (12:32 +0000)]
[PR c++/84602] ICE with anon-struct

https://gcc.gnu.org/ml/gcc-patches/2018-02/msg01577.html
PR c++/84602
* name-lookup.h (search_anon_aggr): Add defaulted WANT_TYPE arg.
* name-lookup.c (fields_linear_search): Look in an anon-aggr
regardless of want_type.
(search_anon_aggr): Just use get_class_binding_direct.

PR c++/84602
* g++.dg/lookup/pr84602.C: New.

From-SVN: r258060

6 years agore PR c++/83871 (wrong code for attribute const and pure on distinct template special...
Jakub Jelinek [Wed, 28 Feb 2018 09:43:10 +0000 (10:43 +0100)]
re PR c++/83871 (wrong code for attribute const and pure on distinct template specializations)

PR c++/83871
PR c++/83503
* g++.dg/ext/attr-warning.C: Remove -fdump-tree-optimized from
dg-options.
* g++.dg/ext/attr-nonnull.C: Likewise.
* g++.dg/ext/attr-noinline.C: Fix syntax in scan-tree-dump-not directives.
* g++.dg/ext/attr-noinline-2.C: Likewise.
* g++.dg/ext/attr-noreturn-2.C: Use -fdump-tree-optimized instead of
-fdump-tree-eh in dg-options.

From-SVN: r258059

6 years agodecl.c (cp_finish_decomp): Don't adjust eltscnt when calling inform_n.
Jakub Jelinek [Wed, 28 Feb 2018 09:01:13 +0000 (10:01 +0100)]
decl.c (cp_finish_decomp): Don't adjust eltscnt when calling inform_n.

* decl.c (cp_finish_decomp): Don't adjust eltscnt when calling
inform_n.

From-SVN: r258058

6 years agore PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call restore...
Jakub Jelinek [Wed, 28 Feb 2018 08:59:15 +0000 (09:59 +0100)]
re PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call restore stub gives bad backtrace)

PR debug/83917
* configure.ac (AS_HIDDEN_DIRECTIVE): AC_DEFINE_UNQUOTED this to
$asm_hidden_op if visibility ("hidden") attribute works.
(HAVE_AS_CFI_SECTIONS): New AC_DEFINE.
* config/i386/i386-asm.h: Don't include auto-host.h.
(PACKAGE_VERSION, PACKAGE_NAME, PACKAGE_STRING, PACKAGE_TARNAME,
PACKAGE_URL): Don't undefine.
(USE_GAS_CFI_DIRECTIVES): Don't use nor define this macro, instead
guard cfi_startproc only on ifdef __GCC_HAVE_DWARF2_CFI_ASM.
(FN_HIDDEN): Change guard from #ifdef HAVE_GAS_HIDDEN to
#ifdef AS_HIDDEN_DIRECTIVE, use AS_HIDDEN_DIRECTIVE macro in the
definition instead of hardcoded .hidden.
* config/i386/cygwin.S: Include i386-asm.h first before .cfi_sections
directive.  Use #ifdef HAVE_AS_CFI_SECTIONS rather than
#ifdef HAVE_GAS_CFI_SECTIONS_DIRECTIVE to guard .cfi_sections.
(USE_GAS_CFI_DIRECTIVES): Don't define.
* configure: Regenerated.
* config.in: Likewise.

From-SVN: r258057

6 years agogcc testsuite changes for new linker messages
Alan Modra [Wed, 28 Feb 2018 08:03:06 +0000 (18:33 +1030)]
gcc testsuite changes for new linker messages

GNU ld error messages have changed to comply with the GNU coding
standards.

* lib/prune.exp (prune_gcc_output): Match lower case "in function"
GNU ld message.
* g++.dg/other/anon5.C: Match lower case "bad value" GNU ld message.

From-SVN: r258054

6 years ago[PR81611] turn inc-and-use-of-dead-orig into auto-inc
Alexandre Oliva [Wed, 28 Feb 2018 05:25:34 +0000 (05:25 +0000)]
[PR81611] turn inc-and-use-of-dead-orig into auto-inc

When the addressing modes available on the machine don't allow offsets
in addresses, odds are that post-increments will be represented in
trees and RTL as:

  y <= x + 1
  ... *(x) ...
  x <= y

so deal with it by turning such RTL as:

  (set y (plus x n))
  ... (mem x) ...

without intervening uses of y into

  (set y x)
  ... (mem (post_add y n)) ...

so as to create auto-inc addresses that we'd otherwise miss.

for  gcc/ChangeLog

PR rtl-optimization/81611
* auto-inc-dec.c (attempt_change): Move dead note from
mem_insn if it's the next use of regno
(find_address): Take address use of reg holding
non-incremented value.  Add parm to limit search to the named
reg only.
(merge_in_block): Attempt to use a mem insn that is the next
use of the original regno.

From-SVN: r258053

6 years agoruntime: update AIX memory allocation for new versions
Ian Lance Taylor [Wed, 28 Feb 2018 01:39:03 +0000 (01:39 +0000)]
runtime: update AIX memory allocation for new versions

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

From-SVN: r258052

6 years agolibgo: update to final Go 1.10 release
Ian Lance Taylor [Wed, 28 Feb 2018 01:19:07 +0000 (01:19 +0000)]
libgo: update to final Go 1.10 release

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

From-SVN: r258051

6 years agoDaily bump.
GCC Administrator [Wed, 28 Feb 2018 00:16:22 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r258050

6 years agoAvoid including <string> directly.
Martin Sebor [Tue, 27 Feb 2018 23:29:51 +0000 (23:29 +0000)]
Avoid including <string> directly.

From-SVN: r258046

6 years agoPR c++/83871 - wrong code for attribute const and pure on distinct template specializ...
Martin Sebor [Tue, 27 Feb 2018 22:28:21 +0000 (22:28 +0000)]
PR c++/83871 - wrong code for attribute const and pure on distinct template specializations

PR c++/83871 - wrong code for attribute const and pure on distinct template specializations
PR c++/83503 - [8 Regression] bogus -Wattributes for const and pure on function template specialization

gcc/ChangeLog:

PR c++/83871
* gcc/doc/invoke.texi (-Wmissing-attributes): New option.
* gcc/print-tree.c (print_node): Handle DECL_UNINLINABLE.

gcc/c-family/ChangeLog:

PR c++/83871
* c.opt (-Wmissing-attributes): New option.

gcc/cp/ChangeLog:

PR c++/83871
PR c++/83503
* cp-tree.h (warn_spec_missing_attributes): New function.
((check_explicit_specialization): Add an argument.  Call the above
function.
* decl.c (duplicate_decls): Avoid applying primary function template's
attributes to its explicit specializations.
cp/pt.c (warn_spec_missing_attributes): Define.

gcc/testsuite/ChangeLog:

PR c++/83871
PR c++/83503
* g++.dg/Wmissing-attributes.C: New test.
* g++.dg/ext/attr-const-pure.C: New test.
* g++.dg/ext/attr-const.C: New test.
* g++.dg/ext/attr-deprecated-2.C: New test.
* g++.dg/ext/attr-malloc-2.C: New test.
* g++.dg/ext/attr-malloc.C: New test.
* g++.dg/ext/attr-noinline-2.C: New test.
* g++.dg/ext/attr-noinline.C: New test.
* g++.dg/ext/attr-nonnull.C: New test.
* g++.dg/ext/attr-noreturn-2.C: New test.
* g++.dg/ext/attr-noreturn.C: New test.
* g++.dg/ext/attr-nothrow-2.C: New test.
* g++.dg/ext/attr-nothrow.C: New test.
* g++.dg/ext/attr-optimize.C: New test.
* g++.dg/ext/attr-pure.C: New test.
* g++.dg/ext/attr-returns-nonnull.C: New test.
* g++.dg/ext/attr-warning.C: New test.

From-SVN: r258045

6 years agoPR translation/84207 - Hard coded plural in gimple-fold.c
Martin Sebor [Tue, 27 Feb 2018 22:06:03 +0000 (22:06 +0000)]
PR translation/84207 - Hard coded plural in gimple-fold.c

gcc/ChangeLog:

PR translation/84207
* diagnostic-core.h (warning_n, error_n, inform_n): Change
n argument to unsigned HOST_WIDE_INT.
* diagnostic.c (warning_n, error_n, inform_n): Ditto.
(diagnostic_n_impl): Ditto.  Handle arguments in excess of LONG_MAX.
* gimple-ssa-sprintf.c (format_directive): Simplify inform_n call.
* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Use warning_n.

From-SVN: r258044

6 years agoPR c++/71546 - lambda init-capture with qualified-id.
HÃ¥kon Sandsmark [Tue, 27 Feb 2018 20:57:35 +0000 (20:57 +0000)]
PR c++/71546 - lambda init-capture with qualified-id.

* parser.c (cp_parser_lambda_introducer): Clear scope after
each lambda capture.

From-SVN: r258043

6 years ago[PR c++/84426] ICE after conflicting member decl
Nathan Sidwell [Tue, 27 Feb 2018 20:52:15 +0000 (20:52 +0000)]
[PR c++/84426] ICE after conflicting member decl

https://gcc.gnu.org/ml/gcc-patches/2018-02/msg01529.html
PR c++/84426
* name-lookup.h (get_member_slot): Rename ...
(find_member_slot): ... here.
(add_member_slot): New.
* name-lookup.c (member_vec_linear_search): No need to check for
NULL slot.
(get_member_slot): Rename ...
(find_member_slot): ... here.  Don't add slot for incomplete class.
(add_member_slot): New.
* class.c (add_method): Adjust get_member_slot rename.  Bail out
if push_class_level_binding fails.  Create slot and grok
properties once we're committed to insertion.

PR c++/84426
* g++.dg/lookup/pr84426.C: New.

From-SVN: r258042

6 years ago* cp-tree.h: Adjust comment.
Jason Merrill [Tue, 27 Feb 2018 19:05:23 +0000 (14:05 -0500)]
* cp-tree.h: Adjust comment.

From-SVN: r258040

6 years agoPR c++/84489 - dependent default template argument
Jason Merrill [Tue, 27 Feb 2018 17:26:47 +0000 (12:26 -0500)]
PR c++/84489 - dependent default template argument

* pt.c (type_unification_real): Handle early substitution failure.

From-SVN: r258039

6 years agore PR tree-optimization/84512 (Missed optimization: should be precalculated in compil...
Richard Biener [Tue, 27 Feb 2018 15:25:33 +0000 (15:25 +0000)]
re PR tree-optimization/84512 (Missed optimization: should be precalculated in compile-time)

2018-02-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/84512
* tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
Do not use the estimate returned from record_stmt_cost for
the scalar iteration cost but sum properly using add_stmt_cost.

* gcc.dg/tree-ssa/pr84512.c: New testcase.

From-SVN: r258036

6 years agore PR libgomp/84466 (libgomp.graphite/force-parallel-8.c fails starting with r257723)
Richard Biener [Tue, 27 Feb 2018 14:45:46 +0000 (14:45 +0000)]
re PR libgomp/84466 (libgomp.graphite/force-parallel-8.c fails starting with r257723)

2018-02-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/84466
* graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
Adjust last change to less strictly validate use operands.

From-SVN: r258035

6 years agoMake groups more generic (PR gcov-profile/84548).
Martin Liska [Tue, 27 Feb 2018 14:11:08 +0000 (15:11 +0100)]
Make groups more generic (PR gcov-profile/84548).

2018-02-27  Martin Liska  <mliska@suse.cz>

PR gcov-profile/84548
* gcov.c (process_file): Allow partial overlap and consider it
also as group functions.
(output_lines): Properly calculate range of lines for a group.
2018-02-27  Martin Liska  <mliska@suse.cz>

PR gcov-profile/84548
* g++.dg/gcov/pr84548.C: New test.

From-SVN: r258033

6 years agoImplement the missing bits of LWG 2769
Ville Voutilainen [Tue, 27 Feb 2018 11:33:30 +0000 (13:33 +0200)]
Implement the missing bits of LWG 2769

* include/std/any (any_cast(const any&)): Add static_assert.
(any_cast(any&)): Likewise.
(any_cast(any&&)): Likewise, and remove the handling
for copyable-but-not-movable type.
* testsuite/20_util/any/misc/any_cast.cc: Adjust.
* testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
add new tests.

From-SVN: r258031

6 years agore PR target/84575 (gcc.target/i386/pr84309.c fail)
Jakub Jelinek [Tue, 27 Feb 2018 08:44:48 +0000 (09:44 +0100)]
re PR target/84575 (gcc.target/i386/pr84309.c fail)

PR target/84575
* gcc.target/i386/pr84309.c: Add -mno-avx2 to dg-options.

From-SVN: r258030

6 years agoFix formatting of -ftime-report.
Martin Liska [Tue, 27 Feb 2018 08:27:12 +0000 (09:27 +0100)]
Fix formatting of -ftime-report.

2018-02-27  Martin Liska  <mliska@suse.cz>

* timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and
'ggc' suffixes.  Change first column width.
(timer::print): Fix formatting of the column.

From-SVN: r258029

6 years ago[IEPM] don't preserve lexical blocks just for debug inline markers
Alexandre Oliva [Tue, 27 Feb 2018 03:37:10 +0000 (03:37 +0000)]
[IEPM] don't preserve lexical blocks just for debug inline markers

This patch stops preserving scope blocks just because they are inlined
function scopes, when cleaning up unused scope blocks.  This change
was introduced along with IEPM, but it preserved lots of blocks, and
output debug information for them, although no code from the inlined
function remained after optimization.

The additional preserved blocks took up compile-time memory, and
significant disk space and link time, in some cases more than 25%.
This is deemed excessive, compared with the reasonably small benefit
of allowing one to single-step into an inlined function using a
view-capable debugger.

There was another way of marking inlined function scopes as unused,
based on the markers referencing them during stmt scanning, but that
still preserved too much.

So, this patch restores the pre-IEPM logic of preservation of scopes.
Should a scope block referenced by an inline entry marker be found to
be unused in remove_unused_scope_block_p, the marker will be cleaned
up right after that, in clear_unused_block_pointer, so we won't keep
a dangling reference to a dropped block.

for  gcc/ChangeLog

* tree-ssa-live.c (remove_unused_scope_block_p): Do not
preserve inline entry blocks for the sake of debug inline
entry point markers alone.
(remove_unused_locals): Suggest in comments a better place to
force the preservation of inline entry blocks that are
otherwise unused, but do not preserve them.

From-SVN: r258026

6 years agoPR c++/84560 - ICE capturing multi-dimensional VLA.
Jason Merrill [Tue, 27 Feb 2018 02:45:56 +0000 (21:45 -0500)]
PR c++/84560 - ICE capturing multi-dimensional VLA.

* tree.c (array_of_runtime_bound_p): False if the element is
variably-modified.

From-SVN: r258023

6 years agoPR c++/84441 - ICE with base initialized from ?:
Jason Merrill [Tue, 27 Feb 2018 02:45:12 +0000 (21:45 -0500)]
PR c++/84441 - ICE with base initialized from ?:

* call.c (unsafe_copy_elision_p): Handle COND_EXPR.

From-SVN: r258022

6 years agoPR c++/84520 - ICE with generic lambda in NSDMI.
Jason Merrill [Tue, 27 Feb 2018 02:44:26 +0000 (21:44 -0500)]
PR c++/84520 - ICE with generic lambda in NSDMI.

* lambda.c (lambda_expr_this_capture): Don't look for fake NSDMI
'this' in a generic lambda instantiation.

From-SVN: r258021

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

From-SVN: r258020

6 years ago* es.po, sv.po: Update.
Joseph Myers [Mon, 26 Feb 2018 22:35:23 +0000 (22:35 +0000)]
* es.po, sv.po: Update.

From-SVN: r258016

6 years agoPR c++/84559 - ICE with constexpr VLA.
Jason Merrill [Mon, 26 Feb 2018 21:55:41 +0000 (16:55 -0500)]
PR c++/84559 - ICE with constexpr VLA.

* constexpr.c (ensure_literal_type_for_constexpr_object): Check
for constexpr variable with VLA type.

From-SVN: r258015

6 years agore PR c++/84558 (ICE with invalid constexpr constructor)
Jakub Jelinek [Mon, 26 Feb 2018 21:52:39 +0000 (22:52 +0100)]
re PR c++/84558 (ICE with invalid constexpr constructor)

PR c++/84558
* constexpr.c (cxx_eval_vec_init_1): For reuse, treat NULL eltinit like
a valid constant initializer.  Formatting fixes.

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

From-SVN: r258014

6 years agore PR c++/84540 (ICE with alignas in variadic template)
Paolo Carlini [Mon, 26 Feb 2018 20:06:40 +0000 (20:06 +0000)]
re PR c++/84540 (ICE with alignas in variadic template)

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

PR c++/84540
* pt.c (tsubst_attributes): Handle correctly tsubst_attribute
returning NULL_TREE.
(apply_late_template_attributes): Likewise.

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

PR c++/84540
* g++.dg/cpp0x/alignas14.C: New.
* g++.dg/cpp0x/alignas15.C: Likewise.

From-SVN: r258012

6 years agore PR c++/84557 (ICE with invalid firstprivate variable)
Jakub Jelinek [Mon, 26 Feb 2018 19:51:05 +0000 (20:51 +0100)]
re PR c++/84557 (ICE with invalid firstprivate variable)

PR c++/84557
* parser.c (cp_parser_omp_var_list_no_open): Only call
cp_parser_lookup_name_simple on names satisfying identifier_p.
(cp_parser_oacc_routine): Likewise.

* g++.dg/gomp/pr84557.C: New test.

From-SVN: r258011

6 years agore PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call restore...
Jakub Jelinek [Mon, 26 Feb 2018 19:46:34 +0000 (20:46 +0100)]
re PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call restore stub gives bad backtrace)

PR debug/83917
* config/i386/i386-asm.h (PACKAGE_VERSION, PACKAGE_NAME,
PACKAGE_STRING, PACKAGE_TARNAME, PACKAGE_URL): Undefine between
inclusion of auto-target.h and auto-host.h.
(USE_GAS_CFI_DIRECTIVES): Define if not defined already based on
__GCC_HAVE_DWARF2_CFI_ASM.
(cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
cfi_def_cfa_register, cfi_def_cfa, cfi_register, cfi_offset, cfi_push,
cfi_pop): Define.
* config/i386/cygwin.S: Don't include auto-host.h here, just
define USE_GAS_CFI_DIRECTIVES to 1 or 0 and include i386-asm.h.
(cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): Remove.
* config/i386/resms64fx.h: Add cfi_* directives.
* config/i386/resms64x.h: Likewise.

From-SVN: r258010

6 years agoPR c++/84551 - ICE with concepts and -g.
Jason Merrill [Mon, 26 Feb 2018 19:04:42 +0000 (14:04 -0500)]
PR c++/84551 - ICE with concepts and -g.

* parser.c (add_debug_begin_stmt): Do nothing in a concept.

From-SVN: r258009

6 years agore PR c++/84325 (internal compiler error, in cxx_eval_constant_expression gcc/cp...
Marek Polacek [Mon, 26 Feb 2018 18:41:56 +0000 (18:41 +0000)]
re PR c++/84325 (internal compiler error, in cxx_eval_constant_expression gcc/cp/constexpr.c:4740)

PR c++/84325
* tree.c (replace_placeholders_r): Only check TREE_CONSTANT on
non-types.

* g++.dg/cpp1z/pr84325.C: New test.

From-SVN: r258008

6 years agobuiltins-3.c: Move vec_neg builtin tests to Power 8 test file.
Carl Love [Mon, 26 Feb 2018 18:13:56 +0000 (18:13 +0000)]
builtins-3.c: Move vec_neg builtin tests to Power 8 test file.

gcc/testsuite/ChangeLog:

2018-02-26  Carl Love  <cel@us.ibm.com>
* gcc.target/powerpc/builtins-3.c: Move vec_neg builtin tests to
Power 8 test file.
* gcc.target/powerpc/builtins-3-p8.c: Add vec_neg builtin tests.
* gcc.target/powerpc/fold-vec-neg-char.c(dg-options): Add -mcpu=power8.
* gcc.target/powerpc/fold-vec-neg-floatdouble.c(dg-options): Add
-mcpu=power8.
* gcc.target/powerpc/fold-vec-neg-int.c(dg-options): Remove file.
* gcc.target/powerpc/fold-vec-neg-short.c(dg-options): Add
-mcpu=power8.

From-SVN: r258006

6 years agoi386: Update comments for ix86_output_indirect_jmp
H.J. Lu [Mon, 26 Feb 2018 17:57:26 +0000 (17:57 +0000)]
i386: Update comments for ix86_output_indirect_jmp

Revision 257992 removed the bool argument from ix86_output_indirect_jmp.
Update comments to reflect it.

* config/i386/i386.c (ix86_output_indirect_jmp): Update comments.

From-SVN: r258005

6 years agoPR c++/84447 - ICE with deleted inherited ctor with default arg.
Jason Merrill [Mon, 26 Feb 2018 17:06:07 +0000 (12:06 -0500)]
PR c++/84447 - ICE with deleted inherited ctor with default arg.

* call.c (build_over_call): Handle deleted functions in one place.

From-SVN: r258003

6 years agoPR c++/81589 - error with is_trivially_constructible
Jason Merrill [Mon, 26 Feb 2018 17:06:02 +0000 (12:06 -0500)]
PR c++/81589 - error with is_trivially_constructible

* g++.dg/ext/is_trivially_constructible6.C: New.

From-SVN: r258002

6 years agoi386: Add TARGET_INDIRECT_BRANCH_REGISTER
H.J. Lu [Mon, 26 Feb 2018 17:00:46 +0000 (17:00 +0000)]
i386: Add TARGET_INDIRECT_BRANCH_REGISTER

For

---
struct C {
  virtual ~C();
  virtual void f();
};

void
f (C *p)
{
  p->f();
  p->f();
}
---

-mindirect-branch=thunk-extern -O2 on x86-64 GNU/Linux generates:

_Z1fP1C:
.LFB0:
        .cfi_startproc
        pushq   %rbx
        .cfi_def_cfa_offset 16
        .cfi_offset 3, -16
        movq    (%rdi), %rax
        movq    %rdi, %rbx
        jmp     .LIND1
.LIND0:
        pushq   16(%rax)
        jmp     __x86_indirect_thunk
.LIND1:
        call    .LIND0
        movq    (%rbx), %rax
        movq    %rbx, %rdi
        popq    %rbx
        .cfi_def_cfa_offset 8
        movq    16(%rax), %rax
        jmp     __x86_indirect_thunk_rax
        .cfi_endproc

x86-64 is supposed to have asynchronous unwind tables by default, but
there is nothing that reflects the change in the (relative) frame
address after .LIND0.  That region really has to be moved outside of
the .cfi_startproc/.cfi_endproc bracket.

This patch adds TARGET_INDIRECT_BRANCH_REGISTER to force indirect
branch via register whenever -mindirect-branch= is used.  Now,
-mindirect-branch=thunk-extern -O2 on x86-64 GNU/Linux generates:

_Z1fP1C:
.LFB0:
.cfi_startproc
pushq %rbx
.cfi_def_cfa_offset 16
.cfi_offset 3, -16
movq (%rdi), %rax
movq %rdi, %rbx
movq 16(%rax), %rax
call __x86_indirect_thunk_rax
movq (%rbx), %rax
movq %rbx, %rdi
popq %rbx
.cfi_def_cfa_offset 8
movq 16(%rax), %rax
jmp __x86_indirect_thunk_rax
.cfi_endproc

so that "-mindirect-branch=thunk-extern" is equivalent to
"-mindirect-branch=thunk-extern -mindirect-branch-register", which is
used by Linux kernel.

gcc/

PR target/84039
* config/i386/constraints.md (Bs): Replace
ix86_indirect_branch_register with
TARGET_INDIRECT_BRANCH_REGISTER.
(Bw): Likewise.
* config/i386/i386.md (indirect_jump): Likewise.
(tablejump): Likewise.
(*sibcall_memory): Likewise.
(*sibcall_value_memory): Likewise.
Peepholes of indirect call and jump via memory: Likewise.
(*sibcall_GOT_32): Disallowed for TARGET_INDIRECT_BRANCH_REGISTER.
(*sibcall_value_GOT_32): Likewise.
* config/i386/i386.opt: Likewise.
* config/i386/predicates.md (indirect_branch_operand): Likewise.
(GOT_memory_operand): Likewise.
(call_insn_operand): Likewise.
(sibcall_insn_operand): Likewise.
(GOT32_symbol_operand): Likewise.
* config/i386/i386.h (TARGET_INDIRECT_BRANCH_REGISTER): New.

gcc/testsuite/

PR target/84039
* gcc.target/i386/indirect-thunk-1.c: Updated.
* gcc.target/i386/indirect-thunk-2.c: Likewise.
* gcc.target/i386/indirect-thunk-3.c: Likewise.
* gcc.target/i386/indirect-thunk-4.c: Likewise.
* gcc.target/i386/indirect-thunk-5.c: Likewise.
* gcc.target/i386/indirect-thunk-6.c: Likewise.
* gcc.target/i386/indirect-thunk-7.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-1.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-2.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-3.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-4.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-5.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-6.c: Likewise.
* gcc.target/i386/indirect-thunk-attr-7.c: Likewise.
* gcc.target/i386/indirect-thunk-bnd-1.c: Likewise.
* gcc.target/i386/indirect-thunk-bnd-2.c: Likewise.
* gcc.target/i386/indirect-thunk-bnd-3.c: Likewise.
* gcc.target/i386/indirect-thunk-bnd-4.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-1.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-2.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-3.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-4.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-5.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-6.c: Likewise.
* gcc.target/i386/indirect-thunk-extern-7.c: Likewise.
* gcc.target/i386/indirect-thunk-inline-1.c: Likewise.
* gcc.target/i386/indirect-thunk-inline-2.c: Likewise.
* gcc.target/i386/indirect-thunk-inline-3.c: Likewise.
* gcc.target/i386/indirect-thunk-inline-4.c: Likewise.
* gcc.target/i386/indirect-thunk-inline-5.c: Likewise.
* gcc.target/i386/indirect-thunk-inline-6.c: Likewise.
* gcc.target/i386/indirect-thunk-inline-7.c: Likewise.
* gcc.target/i386/ret-thunk-9.c: Likewise.
* gcc.target/i386/ret-thunk-10.c: Likewise.
* gcc.target/i386/ret-thunk-11.c: Likewise.
* gcc.target/i386/ret-thunk-12.c: Likewise.
* gcc.target/i386/ret-thunk-13.c: Likewise.
* gcc.target/i386/ret-thunk-14.c: Likewise.
* gcc.target/i386/ret-thunk-15.c: Likewise.

From-SVN: r258001

6 years agoFix typo
Eric Botcazou [Mon, 26 Feb 2018 16:38:37 +0000 (16:38 +0000)]
Fix typo

From-SVN: r257999

6 years agoRe-add test.
Eric Botcazou [Mon, 26 Feb 2018 16:37:11 +0000 (16:37 +0000)]
Re-add test.

From-SVN: r257998

6 years agoRemove bogus test.
Eric Botcazou [Mon, 26 Feb 2018 16:36:20 +0000 (16:36 +0000)]
Remove bogus test.

From-SVN: r257997

6 years agore PR rtl-optimization/83496 (wrong code generated with -Os -mbranch-cost=1)
Eric Botcazou [Mon, 26 Feb 2018 16:29:30 +0000 (16:29 +0000)]
re PR rtl-optimization/83496 (wrong code generated with -Os -mbranch-cost=1)

PR rtl-optimization/83496
* reorg.c (steal_delay_list_from_target): Change REDUNDANT array from
booleans to RTXes.  Call fix_reg_dead_note on every non-null element.
(steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a
redundant insn, if any.
(relax_delay_slots): Likewise.
(update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN.

From-SVN: r257996

6 years agoMake fix for PR 83965 handle SLP reduction chains
Richard Sandiford [Mon, 26 Feb 2018 16:17:00 +0000 (16:17 +0000)]
Make fix for PR 83965 handle SLP reduction chains

This patch prevents pattern-matching of fold-left SLP reduction chains,
which the previous patch for 83965 didn't handle properly.  It only
stops the last statement in the group from being matched, but that's
enough to cause the group to be dissolved later.

A better fix would be to put all the information about the reduction
on the the first statement in the reduction chain, so that every
statement in the group can tell what the group is doing.  That doesn't
seem like stage 4 material though.

2018-02-26  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
PR tree-optimization/83965
* tree-vect-patterns.c (vect_reassociating_reduction_p): Assume
that grouped statements are part of a reduction chain.  Return
true if the statement is not marked as a reduction itself but
is part of a group.
(vect_recog_dot_prod_pattern): Don't check whether the statement
is part of a group here.
(vect_recog_sad_pattern): Likewise.
(vect_recog_widen_sum_pattern): Likewise.

gcc/testsuite/
PR tree-optimization/83965
* gcc.dg/vect/pr83965-2.c: New test.

From-SVN: r257995

6 years ago[testsuite] Add missing function decl to regs-arg-size.c
Tom de Vries [Mon, 26 Feb 2018 16:02:21 +0000 (16:02 +0000)]
[testsuite] Add missing function decl to regs-arg-size.c

2018-02-26  Tom de Vries  <tom@codesourcery.com>

* gcc.c-torture/compile/regs-arg-size.c (swprintf): Declare.

From-SVN: r257994

6 years agore PR debug/84545 (FAIL: g++.dg/debug/pr44182.C -gdwarf-2 -O2 (test for excess errors))
Eric Botcazou [Mon, 26 Feb 2018 15:40:18 +0000 (15:40 +0000)]
re PR debug/84545 (FAIL: g++.dg/debug/pr44182.C -gdwarf-2 -O2 (test for excess errors))

PR debug/84545
* final.c (rest_of_clean_state): Also look for calls inside sequences.

From-SVN: r257993

6 years agoi386: Update -mfunction-return= for return with pop
H.J. Lu [Mon, 26 Feb 2018 15:29:30 +0000 (15:29 +0000)]
i386: Update -mfunction-return= for return with pop

When -mfunction-return= is used, simple_return_pop_internal should pop
return address into ECX register, adjust stack by bytes to pop from stack
and jump to the return thunk via ECX register.

Tested on i686 and x86-64.

PR target/84530
* config/i386/i386-protos.h (ix86_output_indirect_jmp): Remove
the bool argument.
(ix86_output_indirect_function_return): New prototype.
(ix86_split_simple_return_pop_internal): Likewise.
* config/i386/i386.c (indirect_return_via_cx): New.
(indirect_return_via_cx_bnd): Likewise.
(indirect_thunk_name): Handle return va CX_REG.
(output_indirect_thunk_function): Create alias for
__x86_return_thunk_[re]cx and __x86_return_thunk_[re]cx_bnd.
(ix86_output_indirect_jmp): Remove the bool argument.
(ix86_output_indirect_function_return): New function.
(ix86_split_simple_return_pop_internal): Likewise.
* config/i386/i386.md (*indirect_jump): Don't pass false
to ix86_output_indirect_jmp.
(*tablejump_1): Likewise.
(simple_return_pop_internal): Change it to define_insn_and_split.
Call ix86_split_simple_return_pop_internal to split it for
-mfunction-return=.
(simple_return_indirect_internal): Call
ix86_output_indirect_function_return instead of
ix86_output_indirect_jmp.

gcc/testsuite/

PR target/84530
* gcc.target/i386/ret-thunk-22.c: New test.
* gcc.target/i386/ret-thunk-23.c: Likewise.
* gcc.target/i386/ret-thunk-24.c: Likewise.
* gcc.target/i386/ret-thunk-25.c: Likewise.
* gcc.target/i386/ret-thunk-26.c: Likewise.

From-SVN: r257992

6 years agore PR c++/84533 (ICE with duplicate enum value)
Paolo Carlini [Mon, 26 Feb 2018 15:00:44 +0000 (15:00 +0000)]
re PR c++/84533 (ICE with duplicate enum value)

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

PR c++/84533
* decl.c (redeclaration_error_message): Don't try to use
DECL_DECLARED_CONSTEXPR_P on CONST_DECLs.

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

PR c++/84533
* g++.dg/cpp1z/pr84533.C: New.

From-SVN: r257991

6 years agolambda.c (build_capture_proxy): Define static.
Paolo Carlini [Mon, 26 Feb 2018 14:58:47 +0000 (14:58 +0000)]
lambda.c (build_capture_proxy): Define static.

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

* lambda.c (build_capture_proxy): Define static.
* cp-tree.h (build_capture_proxy): Remove.

From-SVN: r257990

6 years agore PR bootstrap/84405 (Fails to bootstrap with GCC 4.1.2, GCC 4.2.4)
Jakub Jelinek [Mon, 26 Feb 2018 14:37:45 +0000 (15:37 +0100)]
re PR bootstrap/84405 (Fails to bootstrap with GCC 4.1.2, GCC 4.2.4)

PR bootstrap/84405
* vec.h (vec_default_construct): For BROKEN_VALUE_INITIALIZATION use
memset and value initialization afterwards.

From-SVN: r257989

6 years agore PR c++/84537 (ICE in get_string, at spellcheck-tree.h)
Marek Polacek [Mon, 26 Feb 2018 14:12:25 +0000 (14:12 +0000)]
re PR c++/84537 (ICE in get_string, at spellcheck-tree.h)

PR c++/84537
* name-lookup.c (suggest_alternative_in_explicit_scope): Return false
if name is error node.

* g++.dg/parse/error60.C: New test.

From-SVN: r257988

6 years agoFix lto-wrapper link flags
Christophe Lyon [Mon, 26 Feb 2018 11:07:31 +0000 (11:07 +0000)]
Fix lto-wrapper link flags

2018-02-26  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
* Makefile.in (lto-wrapper): Use ALL_LINKERFLAGS.

From-SVN: r257987

6 years agore PR c++/84556 (C++17, lambda, OpenMP simd: sorry, unimplemented: unexpected AST)
Jakub Jelinek [Mon, 26 Feb 2018 10:18:31 +0000 (11:18 +0100)]
re PR c++/84556 (C++17, lambda, OpenMP simd: sorry, unimplemented: unexpected AST)

PR c++/84556
* g++.dg/gomp/pr84556.C: New test.
* g++.dg/vect/pr84556.cc: New test.

From-SVN: r257986

6 years agore PR fortran/32957 (C/Fortran interoperability and -fdefault-integer-8)
Dominique d'Humieres [Mon, 26 Feb 2018 09:55:39 +0000 (10:55 +0100)]
re PR fortran/32957 (C/Fortran interoperability and -fdefault-integer-8)

2018-02-26  Dominique d'Humieres <dominiq@gcc.gnu.org>

PR fortran/32957
* gfortran.dg/c_f_pointer_shape_tests_2.f03: Use explicit KIND c_int.
* gfortran.dg/c_f_pointer_shape_tests_4.f03: Likewise.
* gfortran.dg/c_funloc_tests_3.f03: Likewise.
* gfortran.dg/c_loc_test.f90: Likewise.
* gfortran.dg/c_loc_tests_2.f03: Likewise.
* gfortran.dg/proc_decl_17.f90: Likewise.
* gfortran.dg/proc_ptr_8.f90: Likewise.

From-SVN: r257985

6 years ago[Patch AArch64] Turn on frame pointer / partial fix for PR84521
Ramana Radhakrishnan [Mon, 26 Feb 2018 09:25:21 +0000 (09:25 +0000)]
[Patch AArch64] Turn on frame pointer / partial fix for PR84521

This fixes a GCC-8 regression that we accidentally switched off frame
pointers in the AArch64 backend when changing the defaults in the common
parts of the code. This breaks an ABI decision that was made in GCC at
the dawn of the port with respect to having a frame pointer at all
times.  If we really want to turn this off lets have a discussion around
that separately.

For now turn this back on and I believe this will leave PR84521 latent
again with -fomit-frame-pointer and (hopefully) make the ruby issue go
away. I'm asking Sudi to pick that up.

Bootstrapped and regression tested on AArch64-none-linux-gnu but I see
one regression in gcc.c-torture/execute/960419-2.c which needs to be
looked at next (PR84528, thanks Kyrill).

Ok to put in and then look at PR84528 ?

2018-02-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        PR target/84521
* common/config/aarch64/aarch64-common.c
(aarch_option_optimization_table[]): Switch
off fomit-frame-pointer

2018-02-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

PR target/84521
* gcc.target/aarch64/lr_free_2.c: Revert changes in
r254814 disabling -fomit-frame-pointer by default.
* gcc.target/aarch64/spill_1.c: Likewise.
* gcc.target/aarch64/test_frame_11.c: Likewise.
* gcc.target/aarch64/test_frame_12.c: Likewise.
* gcc.target/aarch64/test_frame_13.c: Likewise.
* gcc.target/aarch64/test_frame_14.c: Likewise.
* gcc.target/aarch64/test_frame_15.c: Likewise.
* gcc.target/aarch64/test_frame_3.c: Likewise.
* gcc.target/aarch64/test_frame_5.c: Likewise.
* gcc.target/aarch64/test_frame_9.c: Likewise.

From-SVN: r257984

6 years ago[NDS32] Do not use multiple load/store instructions for volatile memory access.
Kito Cheng [Mon, 26 Feb 2018 07:01:08 +0000 (07:01 +0000)]
[NDS32] Do not use multiple load/store instructions for volatile memory access.

gcc/
* config/nds32/nds32-multiple.md(load_multiple): Disallow
volatile memory.
(store_multiple): Ditto.

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

6 years ago[NDS32] Basic support for -mcpu= and --with-cpu= options.
Kito Cheng [Mon, 26 Feb 2018 06:47:32 +0000 (06:47 +0000)]
[NDS32] Basic support for -mcpu= and --with-cpu= options.

gcc/
* config.gcc: Add --with-cpu support for nds32 target.
* config/nds32/nds32-opts.h(nds32_cpu_type): New.
* config/nds32/nds32.opt: Add -mcpu= option.

From-SVN: r257982

6 years agoPR c++/84015 - ICE with class deduction and auto template parm.
Jason Merrill [Mon, 26 Feb 2018 05:05:15 +0000 (00:05 -0500)]
PR c++/84015 - ICE with class deduction and auto template parm.

* pt.c (rewrite_template_parm): Use tf_partial in first tsubst.

From-SVN: r257979

6 years agoDaily bump.
GCC Administrator [Mon, 26 Feb 2018 00:16:31 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r257978

6 years agors6000: Warn for deprecated options
Segher Boessenkool [Sun, 25 Feb 2018 20:54:41 +0000 (21:54 +0100)]
rs6000: Warn for deprecated options

Some command-line options have been deprecated for a long time.  This
patch adds a warning for them, so that we can remove them in GCC 9
without surprising any users.

* config/rs6000/rs6000.opt (mvrsave=no, mvrsave=yes, isel=no,
isel=yes): Warn for these deprecated options.

From-SVN: r257975

6 years agore PR fortran/83633 (gfortran internal compiler error for explicit-shape array with...
Steven G. Kargl [Sun, 25 Feb 2018 16:50:50 +0000 (16:50 +0000)]
re PR fortran/83633 (gfortran internal compiler error for explicit-shape array with non-constant bounds)

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

PR fortran/83633
* decl.c (variable_decl): Check that an explicit-shape-array with
nonconstant bounds is allowed.

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

PR fortran/83633
* gfortran.dg/explicit_shape_1.f90: New test.
* gfortran.dg/automatic_module_variable.f90: Update regex.
* gfortran.dg/bad_automatic_objects_1.f90: Ditto.
* gfortran.dg/constant_shape.f90: Ditto.
* gfortran.dg/dec_structure_23.f90: Ditto.
* gfortran.dg/pr78240.f90: Ditto.

From-SVN: r257971

6 years agore PR fortran/84523 (Runtime crash deallocating allocatable array within derived...
Paul Thomas [Sun, 25 Feb 2018 12:41:26 +0000 (12:41 +0000)]
re PR fortran/84523 (Runtime crash deallocating allocatable array within derived type)

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

PR fortran/84523
* trans-intrinsic.c (gfc_conv_allocated): If the argument se
has a pre block, add it to the expression pre block.

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

PR fortran/84523
* gfortran.dg/pr84523.f90: New test.

From-SVN: r257970

6 years agore PR fortran/78238 ([OOP] ICE: verify_gimple failed, with -fdefault-integer-8)
Thomas Koenig [Sun, 25 Feb 2018 09:02:32 +0000 (09:02 +0000)]
re PR fortran/78238 ([OOP] ICE: verify_gimple failed, with -fdefault-integer-8)

2018-02-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/78238
* gfortran.h (gfc_integer_4_kind): Define.
* resolve.c (resolve_select_type): Make sure that the
kind of c->high is gfc_integer_4_kind.

2018-02-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/78238
* gfortran.dg/select_type_40.f90: New test.

From-SVN: r257968

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

From-SVN: r257967

6 years agore PR fortran/30792 (DATA implied-do substring allowed with -std=f95/f2003)
Steven G. Kargl [Sat, 24 Feb 2018 17:22:10 +0000 (17:22 +0000)]
re PR fortran/30792 (DATA implied-do substring allowed with -std=f95/f2003)

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

PR fortran/30792
* decl.c (gfc_match_data): Check for invalid substring in
data-implied-do

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

PR fortran/30792
* gfortran.dg/data_substring.f90: New test.

From-SVN: r257962

6 years agore PR c++/83692 (Rejects valid constexpr with unrelated code fixing problem)
Marek Polacek [Sat, 24 Feb 2018 13:10:44 +0000 (13:10 +0000)]
re PR c++/83692 (Rejects valid constexpr with unrelated code fixing problem)

PR c++/83692
* constexpr.c (maybe_constant_init_1): New function.
(maybe_constant_init): Make it a wrapper around maybe_constant_init_1.
(cxx_constant_init): New function.
* cp-tree.h (cxx_constant_init): Declare.
* typeck2.c (store_init_value): Call cxx_constant_init instead of
cxx_constant_value.  Move the maybe_constant_init call under an 'else'.

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

From-SVN: r257961

6 years agoDaily bump.
GCC Administrator [Sat, 24 Feb 2018 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r257960

6 years agoPR libstdc++/84532 prevent unwrapping of reference_wrapper arguments
Jonathan Wakely [Fri, 23 Feb 2018 23:23:43 +0000 (23:23 +0000)]
PR libstdc++/84532 prevent unwrapping of reference_wrapper arguments

PR libstdc++/84532
* include/std/thread (thread::__make_invoker): Construct tuple
directly instead of using make_tuple.
* testsuite/30_threads/async/84532.cc: New.
* testsuite/30_threads/thread/84532.cc: New.

From-SVN: r257956

6 years agocompiler: ignore aliases in fieldtrack info
Ian Lance Taylor [Fri, 23 Feb 2018 21:38:57 +0000 (21:38 +0000)]
compiler: ignore aliases in fieldtrack info

    We want to track references to fields in the real struct, not in
    aliases to the struct.

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

From-SVN: r257954