Commit Graph

159947 Commits

Author SHA1 Message Date
Richard Biener
b1ddb654ab 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
2018-02-27 15:25:33 +00:00
Richard Biener
c16d3e3c87 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
2018-02-27 14:45:46 +00:00
Martin Liska
e59b5e24ea 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
2018-02-27 14:11:08 +00:00
Ville Voutilainen
23c3a05908 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
2018-02-27 13:33:30 +02:00
Jakub Jelinek
2be4b342e0 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
2018-02-27 09:44:48 +01:00
Martin Liska
ea2cd1c276 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
2018-02-27 08:27:12 +00:00
Alexandre Oliva
9893273d98 [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
2018-02-27 03:37:10 +00:00
Jason Merrill
ed75f594a9 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
2018-02-26 21:45:56 -05:00
Jason Merrill
a2444ce970 PR c++/84441 - ICE with base initialized from ?:
* call.c (unsafe_copy_elision_p): Handle COND_EXPR.

From-SVN: r258022
2018-02-26 21:45:12 -05:00
Jason Merrill
ab5f26bba1 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
2018-02-26 21:44:26 -05:00
GCC Administrator
d36a19c78a Daily bump.
From-SVN: r258020
2018-02-27 00:16:24 +00:00
Joseph Myers
e64e6793b1 * es.po, sv.po: Update.
From-SVN: r258016
2018-02-26 22:35:23 +00:00
Jason Merrill
8e9589bd6b 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
2018-02-26 16:55:41 -05:00
Jakub Jelinek
c2236b9b79 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
2018-02-26 22:52:39 +01:00
Paolo Carlini
08735f538c 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
2018-02-26 20:06:40 +00:00
Jakub Jelinek
2bb03eb72f 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
2018-02-26 20:51:05 +01:00
Jakub Jelinek
e586831971 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
2018-02-26 20:46:34 +01:00
Jason Merrill
106b15eac3 PR c++/84551 - ICE with concepts and -g.
* parser.c (add_debug_begin_stmt): Do nothing in a concept.

From-SVN: r258009
2018-02-26 14:04:42 -05:00
Marek Polacek
b671df813a 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
2018-02-26 18:41:56 +00:00
Carl Love
40b864f141 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
2018-02-26 18:13:56 +00:00
H.J. Lu
fc43583658 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
2018-02-26 09:57:26 -08:00
Jason Merrill
18101e7383 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
2018-02-26 12:06:07 -05:00
Jason Merrill
f18f8ade38 PR c++/81589 - error with is_trivially_constructible
* g++.dg/ext/is_trivially_constructible6.C: New.

From-SVN: r258002
2018-02-26 12:06:02 -05:00
H.J. Lu
c2c601b2c0 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
2018-02-26 09:00:46 -08:00
Eric Botcazou
94e16982e6 Fix typo
From-SVN: r257999
2018-02-26 16:38:37 +00:00
Eric Botcazou
e6799923e4 Re-add test.
From-SVN: r257998
2018-02-26 16:37:11 +00:00
Eric Botcazou
70a1af611a Remove bogus test.
From-SVN: r257997
2018-02-26 16:36:20 +00:00
Eric Botcazou
f41881a4ad 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
2018-02-26 16:29:30 +00:00
Richard Sandiford
d99dcb77bb 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
2018-02-26 16:17:00 +00:00
Tom de Vries
9992661cc6 [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
2018-02-26 16:02:21 +00:00
Eric Botcazou
24086c2021 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
2018-02-26 15:40:18 +00:00
H.J. Lu
b9d676b3c0 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
2018-02-26 07:29:30 -08:00
Paolo Carlini
98c26210e2 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
2018-02-26 15:00:44 +00:00
Paolo Carlini
856c79ea8d 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
2018-02-26 14:58:47 +00:00
Jakub Jelinek
ff9fccdcb5 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
2018-02-26 15:37:45 +01:00
Marek Polacek
7518398dce 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
2018-02-26 14:12:25 +00:00
Christophe Lyon
bdb8ec2d8d 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
2018-02-26 12:07:31 +01:00
Jakub Jelinek
8562191ad2 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
2018-02-26 11:18:31 +01:00
Dominique d'Humieres
f87f88974b 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
2018-02-26 10:55:39 +01:00
Ramana Radhakrishnan
af3b4514fc [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
2018-02-26 09:25:21 +00:00
Kito Cheng
cc9b241b51 [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
2018-02-26 07:01:08 +00:00
Kito Cheng
7f3101c0a8 [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
2018-02-26 06:47:32 +00:00
Jason Merrill
a8a3f32d58 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
2018-02-26 00:05:15 -05:00
GCC Administrator
9445efc220 Daily bump.
From-SVN: r257978
2018-02-26 00:16:31 +00:00
Segher Boessenkool
f727d9afe3 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
2018-02-25 21:54:41 +01:00
Steven G. Kargl
09ef33c108 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
2018-02-25 16:50:50 +00:00
Paul Thomas
8fba26f48f 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
2018-02-25 12:41:26 +00:00
Thomas Koenig
6ef1366a55 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
2018-02-25 09:02:32 +00:00
GCC Administrator
c7aff3bc8b Daily bump.
From-SVN: r257967
2018-02-25 00:16:23 +00:00
Steven G. Kargl
c034c38f8d 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
2018-02-24 17:22:10 +00:00