1. 27 Feb, 2018 11 commits
  2. 26 Feb, 2018 29 commits
    • * es.po, sv.po: Update. · e64e6793
      From-SVN: r258016
      Joseph Myers committed
    • PR c++/84559 - ICE with constexpr VLA. · 8e9589bd
      	* constexpr.c (ensure_literal_type_for_constexpr_object): Check
      	for constexpr variable with VLA type.
      
      From-SVN: r258015
      Jason Merrill committed
    • re PR c++/84558 (ICE with invalid constexpr constructor) · c2236b9b
      	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
      Jakub Jelinek committed
    • re PR c++/84540 (ICE with alignas in variadic template) · 08735f53
      /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
      Paolo Carlini committed
    • re PR c++/84557 (ICE with invalid firstprivate variable) · 2bb03eb7
      	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
      Jakub Jelinek committed
    • re PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call… · e5868319
      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
      Jakub Jelinek committed
    • PR c++/84551 - ICE with concepts and -g. · 106b15ea
      	* parser.c (add_debug_begin_stmt): Do nothing in a concept.
      
      From-SVN: r258009
      Jason Merrill committed
    • re PR c++/84325 (internal compiler error, in cxx_eval_constant_expression gcc/cp/constexpr.c:4740) · b671df81
      	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
      Marek Polacek committed
    • builtins-3.c: Move vec_neg builtin tests to Power 8 test file. · 40b864f1
      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
      Carl Love committed
    • i386: Update comments for ix86_output_indirect_jmp · fc435836
      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
      H.J. Lu committed
    • PR c++/84447 - ICE with deleted inherited ctor with default arg. · 18101e73
      	* call.c (build_over_call): Handle deleted functions in one place.
      
      From-SVN: r258003
      Jason Merrill committed
    • PR c++/81589 - error with is_trivially_constructible · f18f8ade
      	* g++.dg/ext/is_trivially_constructible6.C: New.
      
      From-SVN: r258002
      Jason Merrill committed
    • i386: Add TARGET_INDIRECT_BRANCH_REGISTER · c2c601b2
      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
      H.J. Lu committed
    • Fix typo · 94e16982
      From-SVN: r257999
      Eric Botcazou committed
    • Re-add test. · e6799923
      From-SVN: r257998
      Eric Botcazou committed
    • Remove bogus test. · 70a1af61
      From-SVN: r257997
      Eric Botcazou committed
    • re PR rtl-optimization/83496 (wrong code generated with -Os -mbranch-cost=1) · f41881a4
      	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
      Eric Botcazou committed
    • Make fix for PR 83965 handle SLP reduction chains · d99dcb77
      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
      Richard Sandiford committed
    • [testsuite] Add missing function decl to regs-arg-size.c · 9992661c
      2018-02-26  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.c-torture/compile/regs-arg-size.c (swprintf): Declare.
      
      From-SVN: r257994
      Tom de Vries committed
    • re PR debug/84545 (FAIL: g++.dg/debug/pr44182.C -gdwarf-2 -O2 (test for excess errors)) · 24086c20
      	PR debug/84545
      	* final.c (rest_of_clean_state): Also look for calls inside sequences.
      
      From-SVN: r257993
      Eric Botcazou committed
    • i386: Update -mfunction-return= for return with pop · b9d676b3
      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
      H.J. Lu committed
    • re PR c++/84533 (ICE with duplicate enum value) · 98c26210
      /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
      Paolo Carlini committed
    • lambda.c (build_capture_proxy): Define static. · 856c79ea
      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
      Paolo Carlini committed
    • re PR bootstrap/84405 (Fails to bootstrap with GCC 4.1.2, GCC 4.2.4) · ff9fccdc
      	PR bootstrap/84405
      	* vec.h (vec_default_construct): For BROKEN_VALUE_INITIALIZATION use
      	memset and value initialization afterwards.
      
      From-SVN: r257989
      Jakub Jelinek committed
    • re PR c++/84537 (ICE in get_string, at spellcheck-tree.h) · 7518398d
      	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
      Marek Polacek committed
    • Fix lto-wrapper link flags · bdb8ec2d
      2018-02-26  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	gcc/
      	* Makefile.in (lto-wrapper): Use ALL_LINKERFLAGS.
      
      From-SVN: r257987
      Christophe Lyon committed
    • re PR c++/84556 (C++17, lambda, OpenMP simd: sorry, unimplemented: unexpected AST) · 8562191a
      	PR c++/84556
      	* g++.dg/gomp/pr84556.C: New test.
      	* g++.dg/vect/pr84556.cc: New test.
      
      From-SVN: r257986
      Jakub Jelinek committed
    • re PR fortran/32957 (C/Fortran interoperability and -fdefault-integer-8) · f87f8897
      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
      Dominique d'Humieres committed
    • [Patch AArch64] Turn on frame pointer / partial fix for PR84521 · af3b4514
      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
      Ramana Radhakrishnan committed