170684 Commits

Author SHA1 Message Date
Thomas Koenig
1e67491a0d re PR libgomp/91473 (Test case libgomp.fortran/appendix-a/a.28.5.f90 is invalid)
2019-08-17  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/91473
    * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add
    -std=legacy so invalid code in the test case is accepted.

From-SVN: r274602
2019-08-17 11:57:25 +00:00
Gerald Pfeifer
d782af8f59 * doc/ux.texi (User Experience Guidelines): Update reference.
From-SVN: r274601
2019-08-17 10:10:54 +00:00
Gerald Pfeifer
7174942f4a gpl_v3.texi (Copying): Adjust the link to "Why not LGPL".
* doc/include/gpl_v3.texi (Copying): Adjust the link to "Why
	not LGPL".

From-SVN: r274600
2019-08-17 10:07:13 +00:00
Janne Blomqvist
d74a8b0579 PR fortran/68401 Improve allocation error message
Improve the error message that is printed when a memory allocation
fails, by including the location, and the size of the allocation that
failed.

Regtested on x86_64-pc-linux-gnu.

gcc/fortran/ChangeLog:

2019-08-17  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/68401
	* trans-decl.c (gfc_build_builtin_function_decls): Replace
	os_error with os_error_at decl.
	* trans.c (trans_runtime_error_vararg): Modify so the error
	function decl is passed directly.
	(gfc_trans_runtime_error): Pass correct error function decl.
	(gfc_trans_runtime_check): Likewise.
	(trans_os_error_at): New function.
	(gfc_call_malloc): Use trans_os_error_at.
	(gfc_allocate_using_malloc): Likewise.
	(gfc_call_realloc): Likewise.
	* trans.h (gfor_fndecl_os_error): Replace with gfor_fndecl_os_error_at.

libgfortran/ChangeLog:

2019-08-17  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/68401
	* gfortran.map: Add GFORTRAN_10 node, add _gfortran_os_error_at
	symbol.
	* libgfortran.h (os_error_at): New prototype.
	* runtime/error.c (os_error_at): New function.

From-SVN: r274599
2019-08-17 08:45:37 +03:00
Ian Lance Taylor
777c028252 runtime: scan write barrier buffer conservatively
In gccgo, we insert the write barriers in the frontend, and so we
    cannot completely prevent write barriers on stack writes. So it
    is possible for a bad pointer appearing in the write barrier
    buffer. When flushing the write barrier, treat it the same as
    sacnning the stack. In particular, don't mark a pointer if it
    does not point to an allocated object. We already have similar
    logic in greyobject. With this, hopefully, we can prevent an
    unallocated object from being marked completely.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/190599

From-SVN: r274598
2019-08-17 04:35:37 +00:00
Marek Polacek
7aad42b918 Put the CL into the right dir.
From-SVN: r274596
2019-08-17 01:22:18 +00:00
GCC Administrator
801c725fcc Daily bump.
From-SVN: r274595
2019-08-17 00:16:17 +00:00
Ian Lance Taylor
29ca15bb29 compiler: print runtime.hex in hex
The gc compiler recognizes the type runtime.hex and prints values
    in this type as hex. Do the same here. This makes debugging
    runtime crashes slightly better.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/190597

From-SVN: r274591
2019-08-16 22:49:23 +00:00
Jeff Law
1ccd703591 * gcc.target/sh/pr54236-6.c: Use -fno-tree-forwprop.
From-SVN: r274590
2019-08-16 15:51:13 -06:00
Marek Polacek
a98b732181 re PR c++/85827 (false positive for -Wunused-but-set-variable because of constexpr-if)
PR c++/85827
g++.dg/cpp1z/constexpr-if29.C: New test.

From-SVN: r274587
2019-08-16 20:40:36 +00:00
Iain Sandoe
639f51ba26 libsanitizer, record a local patch.
2019-08-16  Iain Sandoe  <iain@sandoe.co.uk>

	* LOCAL_PATCHES: Add r274585.

From-SVN: r274586
2019-08-16 19:49:07 +00:00
Iain Sandoe
dea853e840 libsanitize, asan - reapply r272406
The entry in LOCAL_PATCHES was accidentally omitted.

2019-08-16  Iain Sandoe  <iain@sandoe.co.uk>

	* asan/asan_interceptors.h: Reapply r272406.

From-SVN: r274585
2019-08-16 19:46:09 +00:00
Martin Sebor
1f2a3ac346 As discussed below:
https://gcc.gnu.org/ml/gcc-patches/2019-08/msg00517.html

gcc/testsuite/ChangeLog:
	* gcc.dg/struct-ret-1.c: Enable on all targets.

From-SVN: r274579
2019-08-16 11:06:25 -06:00
Eric Botcazou
d83a4cf15d tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead of NULL.
* tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead
	of NULL.  Add guard for broken VIEW_CONVERT_EXPRs.

From-SVN: r274576
2019-08-16 16:00:25 +00:00
Martin Sebor
dc139eb184 tree.def (TYPE_SIZE): Clarify.
gcc/ChangeLog:

	* tree.def (TYPE_SIZE): Clarify.
	* tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments.

From-SVN: r274575
2019-08-16 09:53:29 -06:00
Martin Sebor
edf2da1e8d re PR testsuite/91458 (FAIL: g++.dg/tree-ssa/pr19807.C -std=gnu++98 scan-tree-dump-times optimized "&MEM\\\\[\\\\(void .\\\\)&a \\\\+ 8B\\\\]" 3)
PR testsuite/91458

gcc/testsuite/ChangeLog:

	* g++.dg/tree-ssa/pr19807.C: Use the same search pattern
	unconditionally (correcting r272199, PR middle-end/90676).

From-SVN: r274574
2019-08-16 09:47:25 -06:00
Bernd Edlinger
23e0f4c339 re PR tree-optimization/91109 ([arm] gcc.c-torture/execute/20040709-1.c fails since r273135)
2019-08-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR tree-optimization/91109
        * lra-int.h (lra_need_for_scratch_reg_p): Declare.
        * lra.c (lra): Use lra_need_for_scratch_reg_p.
        * lra-spills.c (lra_need_for_scratch_reg_p): New function.

From-SVN: r274573
2019-08-16 15:34:47 +00:00
Uros Bizjak
94538b6545 mmx.md (mmxdoublemode): New mode attribute.
* config/i386/mmx.md (mmxdoublemode): New mode attribute.
	(mmx_uavg<mode>3): Macroize expaner from mmx_uavgv8qi3 and
	mmx_uavgv4hi3 using MMXMODE12 mode iterator.
	(uavg<mode>3_ceil): New expander.
	* config/i386/sse.md (uavg<mode>3_ceil): Use ssedoublemode
	mode iterator when creating CONST1_RTX.
	(<sse2_avx2>_uavg<mode>3<mask_name>): Ditto.
	(*<sse2_avx2>_uavg<mode>3<mask_name>): Use ssedoublemode
	mode iterator for const1_operand predicate.

From-SVN: r274572
2019-08-16 16:28:12 +02:00
Richard Biener
9ac1403ca2 tree-scalar-evolution.c (follow_ssa_edge_expr): Declare.
2019-08-16  Richard Biener  <rguenther@suse.de>

	* tree-scalar-evolution.c (follow_ssa_edge_expr): Declare.
	(follow_ssa_edge_binary): Call follow_ssa_edge_expr instead of
	follow_ssa_edge.
	(follow_ssa_edge_in_condition_phi_branch): Likewise.
	(analyze_evolution_in_loop): Likewise.
	(follow_ssa_edge, follow_ssa_edge_in_rhs): Inline into ...
	(follow_ssa_edge_expr): ... here.  Refactor code.

From-SVN: r274571
2019-08-16 13:23:01 +00:00
Richard Biener
772a1b15d5 re PR target/91469 (ICE in extract_insn, at recog.c:2310 since r274481)
2019-08-16  Richard Biener  <rguenther@suse.de>

	PR target/91469
	* config/i386/i386-features.c
	(general_scalar_chain::replace_with_subreg): Stop at memory operands.

	* gcc.target/i386/pr91469-1.c: New testcase.
	* gcc.target/i386/pr91469-2.c: Likewise.

From-SVN: r274570
2019-08-16 13:17:04 +00:00
Uros Bizjak
4305b26e1d baseline_symbols.txt: Update.
* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r274569
2019-08-16 14:30:40 +02:00
Mark Eggleston
b323be611b Allow automatics in equivalences
If a variable with an automatic attribute appears in an
equivalence statement the storage should be allocated on the
stack.

Note: most of this patch was provided by Jeff Law  <law@redhat.com>.

From-SVN: r274565
2019-08-16 10:09:57 +00:00
Kyrylo Tkachov
12f78d8bed [gensupport] PR 91255: Do not error out immediately on set_attr_alternative with define_subst
I'm trying to add a define_subst use in the arm backend but am getting many build errors complaining about:
`set_attr_alternative' is unsupported by `define_subst'

Looking at the gensupport.c code it iterates over all define_insns and errors if any of them have set_attr_alternative.

The usecase I'm targetting doesn't involve patterns with set_attr_alternative, so I would like to make the define_subst handling
more robust to only error out if the define_subst is actually attempted on a set_attr_alternative.

This patch produces the error only if the set_attr_alternative attr matches the subst name.
This allows a build of the arm backend with a define_subst usage to succeed.

	PR other/91255
	* gensupport.c (has_subst_attribute): Error out on set_attr_alternative
	only if subst_name matches curr_attr string.

From-SVN: r274564
2019-08-16 09:32:36 +00:00
Richard Biener
cc19f80ceb tree-ssa-forwprop.c (simplify_builtin_call): Do not remove stmt at gsi_p, instead replace it with a NOP removed later.
2019-08-16  Richard Biener  <rguenther@suse.de>

	* tree-ssa-forwprop.c (simplify_builtin_call): Do not remove
	stmt at gsi_p, instead replace it with a NOP removed later.
	(pass_forwprop::execute): Fully propagate lattice, DCE stmts
	that became dead because of that.

	fortran/
	* trans-intrinsic.c (gfc_conv_intrinsic_findloc): Initialize
	forward_branch to avoid bogus uninitialized warning.

	* gcc.dg/tree-ssa/forwprop-31.c: Adjust.

From-SVN: r274563
2019-08-16 09:27:34 +00:00
Martin Liska
4f4af789f9 Add missed to a opt-info dump.
2019-08-16  Martin Liska  <mliska@suse.cz>

	PR ipa/91447
	* g++.dg/ipa/ipa-icf-4.C: Add -missed for target that
	don't have aliases.

From-SVN: r274562
2019-08-16 08:10:55 +00:00
Aldy Hernandez
97ecc8d576 Add type to VR_VARYING.
From-SVN: r274561
2019-08-16 06:54:23 +00:00
Alexandre Oliva
e3cfbeaf6b require trampolines for pr85044
Testcases that require support for trampolines should be marked as
such; gcc.target/i386/pr85044.c was missing it.  Fixed.


for  gcc/testsuite/ChangeLog

	* gcc.target/i386/pr85044.c: Require support for trampolines.

From-SVN: r274560
2019-08-16 03:39:02 +00:00
Alexandre Oliva
967a322ede i386/asm-4 test: use amd64's natural addressing mode on all OSs
gcc.target/i386/asm-4.c uses amd64's natural PC-relative addressing
mode on a single platform, using the 32-bit absolute addressing mode
elsewhere.  There's no point in giving up amd64's natural addressing
mode and insisting on the 32-bit one when we're targeting amd64, and
having to make explicit exceptions for systems where that's found not
to work for whatever reason.  If we just use the best-suited way to
take the address of a function behind the compiler's back on each
target variant, we're less likely to hit unexpected failures.


for  gcc/testsuite/ChangeLog

	* gcc.target/i386/asm-4.c: Use amd64 natural addressing mode
	on all __LP64__ targets.

From-SVN: r274559
2019-08-16 03:38:49 +00:00
Alexandre Oliva
1ce521ece9 use __builtin_alloca, drop non-standard alloca.h
Since alloca.h is not ISO C, most of our alloca-using tests seem to
rely on __builtin_alloca instead of including the header and calling
alloca.  This patch extends this practice to some of the exceptions I
found in gcc.target, marking them as requiring a functional alloca
while at that.


for  gcc/testsuite/ChangeLog

	* gcc.target/arc/interrupt-6.c: Use __builtin_alloca, require
	effective target support for alloca, drop include of alloca.h.
	* gcc.target/i386/pr80969-3.c: Likewise.
	* gcc.target/sparc/setjmp-1.c: Likewise.
	* gcc.target/x86_64/abi/ms-sysv/gen.cc: Likewise.
	* gcc.target/x86_64/abi/ms-sysv/ms-sysv.c: Likewise.

From-SVN: r274558
2019-08-16 03:38:36 +00:00
Alexandre Oliva
2bfd0045b1 Match ld besides collect2 in gcov test
The regexp that checks that -lgcov is linked in when --coverage is
passed to the compiler driver requires the command line to match
'/collect2'.  Some of our targets don't match that, but they match /ld
or ${target_alias}-ld depending on the testing scenario, so I'd like
to tweak the test to match those as well.


for  gcc/testsuite/ChangeLog

	* gcc.misc-tests/options.exp: Match /ld and -ld besides
	/collect2.

From-SVN: r274557
2019-08-16 03:38:23 +00:00
Alexandre Oliva
3b5864f421 address change
Oops, I forgot to update the MAINTAINERS file a couple of months ago,
when the address there stopped working.

Honestly, I haven't really had much involvement with the frv, mn10300
or sh ports for almost 15 years, so I wouldn't mind if someone else
stepped up and took over, but until someone does, I don't mind
reviewing the occasional patch, so it's best if it can reach me ;-)


for  ChangeLog

	* MAINTAINERS: aoliva from @redhat.com to @gcc.gnu.org.

From-SVN: r274556
2019-08-16 03:38:09 +00:00
GCC Administrator
09b0f5bf9e Daily bump.
From-SVN: r274555
2019-08-16 00:16:16 +00:00
Thomas Koenig
fb078366c7 re PR fortran/91443 (-Wargument-mismatch does not catch mismatch for global procedure)
2019-08-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/91443
	* frontend-passes.c (check_externals_expr): New function.
	(check_externals_code): New function.
	(gfc_check_externals): New function.
	* gfortran.h (debug): Add prototypes for gfc_symbol * and
	gfc_expr *.
	(gfc_check_externals): Add prototype.
	* interface.c (compare_actual_formal): Do not complain about
	alternate returns if the formal argument is optional.
	(gfc_procedure_use): Handle cases when an error has been issued
	previously.  Break long line.
	* parse.c (gfc_parse_file): Call gfc_check_externals for all
	external procedures.
	* resolve.c (resolve_global_procedure): Remove checking of
	argument list.

2019-08-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/91443
	* gfortran.dg/argument_checking_19.f90: New test.
	* gfortran.dg/altreturn_10.f90: Change dg-warning to dg-error.
	* gfortran.dg/dec_union_11.f90: Add -std=legacy.
	* gfortran.dg/hollerith8.f90: Likewise. Remove warning for
	Hollerith constant.
	* gfortran.dg/integer_exponentiation_2.f90: New subroutine gee_i8;
	use it to avoid type mismatches.
	* gfortran.dg/pr41011.f: Add -std=legacy.
	* gfortran.dg/whole_file_1.f90: Change warnings to errors.
	* gfortran.dg/whole_file_2.f90: Likewise.

From-SVN: r274551
2019-08-15 22:52:40 +00:00
Jason Merrill
7148dede8a PR c++/90393 - ICE with thow in ?:
My previous patch for 64372 was incomplete: it only stopped making the
non-throw argument into an rvalue, lvalue_kind still considered the ?:
expression to be an rvalue, leaving us worse than before.

	PR c++/64372, DR 1560 - Gratuitous lvalue-to-rvalue conversion in ?:
	* tree.c (lvalue_kind): Handle throw in one arm.
	* typeck.c (rationalize_conditional_expr): Likewise.
	(cp_build_modify_expr): Likewise.

From-SVN: r274550
2019-08-15 17:55:19 -04:00
H.J. Lu
d321551cea i386: Separate costs of pseudo registers from hard registers
processor_costs has costs of RTL expressions with pseudo registers and
and costs of hard register moves:

1. Costs of RTL expressions are used to generate the most efficient RTL
operations with pseudo registers.

2. Costs of hard register moves are used by register allocator to
decide how to allocate and move hard registers.

Since relative costs of pseudo register load and store versus pseudo
register moves in RTL expressions can be different from relative costs
of hard registers, we should separate costs of RTL expressions with
pseudo registers from costs of hard registers so that register allocator
and RTL expressions can be improved independently.

This patch moves costs of hard register moves to the new hard_register
field and duplicates costs of moves which are also used for costs of RTL
expressions.

	PR target/90878
	* config/i386/i386.c (inline_memory_move_cost): Use hard_register
	for costs of hard register moves.
	(ix86_register_move_cost): Likewise.
	* config/i386/i386.h (processor_costs): Move costs of hard
	register moves to hard_register.  Add int_load, int_store,
	xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
	sse_load, sse_store, sse_unaligned_load and sse_unaligned_store
	for costs of RTL expressions.
	* config/i386/x86-tune-costs.h: Move costs of hard register
	moves to hard_register.  Duplicate int_load, int_store,
	xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
	sse_load, sse_store for costs of RTL expressions.

From-SVN: r274543
2019-08-15 11:15:33 -07:00
Jonathan Wakely
d91f618d15 PR libstdc++/91456 make INVOKE<R> work with uncopyable prvalues
In C++17 a function can return a prvalue of a type that cannot be moved
or copied. The current implementation of std::is_invocable_r uses
std::is_convertible to test the conversion to R required by INVOKE<R>.
That fails for non-copyable prvalues, because std::is_convertible is
defined in terms of std::declval which uses std::add_rvalue_reference.
In C++17 conversion from R to R involves no copies and so is not the
same as conversion from R&& to R.

This commit changes std::is_invocable_r to check the conversion without
using std::is_convertible.

std::function also contains a similar check using std::is_convertible,
which can be fixed by simply reusing std::is_invocable_r (but because
std::is_invocable_r is not defined for C++11 it uses the underlying
std::__is_invocable_impl trait directly).

	PR libstdc++/91456
	* include/bits/std_function.h (__check_func_return_type): Remove.
	(function::_Callable): Use std::__is_invocable_impl instead of
	__check_func_return_type.
	* include/std/type_traits (__is_invocable_impl): Add another defaulted
	template parameter. Define a separate partial specialization for
	INVOKE and INVOKE<void>. For INVOKE<R> replace is_convertible check
	with a check that models delayed temporary materialization.
	* testsuite/20_util/function/91456.cc: New test.
	* testsuite/20_util/is_invocable/91456.cc: New test.

From-SVN: r274542
2019-08-15 17:07:27 +01:00
Martin Liska
b3595983e3 Add r274540 to LOCAL_PATCHES.
2019-08-15  Martin Liska  <mliska@suse.cz>

	* LOCAL_PATCHES: Add r274540

From-SVN: r274541
2019-08-15 15:32:46 +00:00
Martin Liska
71e895b119 Reapply missing patch for libsanitizer.
2019-08-15  Martin Liska  <mliska@suse.cz>

	* tsan/tsan_rtl_ppc64.S: Reapply.

From-SVN: r274540
2019-08-15 15:31:46 +00:00
Richard Sandiford
06b5889c43 Remove TARGET_SETUP_INCOMING_VARARG_BOUNDS
TARGET_SETUP_INCOMING_VARARG_BOUNDS seems to be an unused vestige of the
MPX support.

2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* target.def (setup_incoming_vararg_bounds): Remove.
	* doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_setup_incoming_vararg_bounds): Delete.
	* targhooks.h (default_setup_incoming_vararg_bounds): Likewise.
	* config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
	(TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.

From-SVN: r274539
2019-08-15 14:26:14 +00:00
Iain Sandoe
8bc1fac71d [libsanitizer] Fix PR bootstrap/91455
If a target does not support libbacktrace, it might still the include
for $(top_srcdir).

Regenerate the built files using automake-1.15.1

libsanitizer/

2019-08-15  Iain Sandoe  <iain@sandoe.co.uk>

	PR bootstrap/91455
	* Makefile.in: Regenerated.
	* aclocal.m4: Likewise.
	* asan/Makefile.in: Likewise.
	* configure: Likewise.
	* interception/Makefile.in: Likewise.
	* libbacktrace/Makefile.in: Likewise.
	* lsan/Makefile.in: Likewise.
	* sanitizer_common/Makefile.am: Include top_srcdir unconditionally.
	* sanitizer_common/Makefile.in: Regenerated.
	* tsan/Makefile.in: Likewise.
	* ubsan/Makefile.in: Likewise.

From-SVN: r274538
2019-08-15 14:13:10 +00:00
Jozef Lawrynowicz
43bfd4e87b MSP430: Fix lines over 80 characters long in config/msp430/*.{c,h} files
2019-08-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	MSP430: Fix lines over 80 characters long in
	config/msp430/*.{c,h} files

	* config/msp430/driver-msp430.c (msp430_select_cpu): Fix format
	specifier in string.
	(msp430_select_hwmult_lib): Split line more than 80 characters long.
	* config/msp430/msp430-devices.c (msp430_extract_mcu_data): Remove
	redundant old comment.
	* config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
	Split line more than 80 characters long.
	* config/msp430/msp430.c (msp430_option_override): Likewise.
	(msp430_return_in_memory): Likewise.
	(msp430_gimplify_va_arg_expr): Likewise.
	(TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
	(msp430_legitimate_constant): Likewise.
	(TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Likewise.
	(msp430_attr): Likewise.
	(msp430_data_attr): Likewise.
	(msp430_start_function): Likewise.
	(gen_prefix): Likewise.
	(msp430_init_sections): Likewise.
	(msp430_select_section): Likewise.
	(msp430_function_section): Likewise.
	(msp430_unique_section): Likewise.
	(msp430_output_aligned_decl_common): Likewise.
	(msp430_do_not_relax_short_jumps): Likewise.
	(msp430_init_builtins): Likewise.
	(msp430_expand_delay_cycles): Likewise.
	(msp430_expand_prologue): Likewise.
	(msp430_expand_epilogue): Likewise.
	(msp430_expand_helper): Likewise.
	(msp430_split_movsi): Likewise.
	(msp430_print_operand): Likewise.
	(msp430_return_addr_rtx): Likewise.
	(msp430x_extendhisi): Likewise.
	* config/msp430/msp430.h (STARTFILE_SPEC): Likewise.
	(ASM_SPEC): Likewise.
	Remove very obvious comments.
	(LIB_SPEC): Split line more than 80 characters long.
	(EH_RETURN_HANDLER_RTX): Likewise.
	(HARD_REGNO_CALLER_SAVE_MODE): Likewise.

From-SVN: r274537
2019-08-15 12:59:04 +00:00
Jozef Lawrynowicz
81a8845cc0 MSP430: Fix whitespace errors and incorrect indentation in config/msp430/*.{c,h} files
2019-08-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	MSP430: Fix whitespace errors and incorrect indentation in
	config/msp430/*.{c,h} files

	* config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation.
	(msp430_select_hwmult_lib): Likewise.
	* config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise.
	(msp430_extract_mcu_data): Likewise.
	(struct t_msp430_mcu_data): Likewise.
	* config/msp430/msp430.c (struct machine_function): Remove whitespace
	before left square bracket.
	(msp430_option_override): Fix indentation.
	(msp430_hard_regno_nregs_with_padding): Likewise.
	(msp430_initial_elimination_offset): Likewise.
	(msp430_special_register_convention_p): Remove whitespace before left
	square bracket and after exclamation mark.
	(msp430_evaluate_arg): Likewise.
	(msp430_callee_copies): Fix indentation.
	(msp430_gimplify_va_arg_expr): Likewise.
	(msp430_function_arg_advance): Remove whitespace before left square
	bracket.
	(reg_ok_for_addr): Likewise.
	(msp430_preserve_reg_p): Likewise.
	(msp430_compute_frame_info): Likewise.
	(msp430_asm_output_addr_const_extra): Add space between function name
	and open parenthesis.
	(has_section_name): Fix indentation.
	(msp430_attr): Remove trailing whitespace.
	(msp430_section_attr): Likewise.
	(msp430_data_attr): Likewise.
	(struct msp430_attribute_table): Fix comment and whitespace.
	(msp430_start_function): Remove whitespace before left square bracket.
	Add space between function name and open parenthesis.
	(msp430_select_section): Remove trailing whitespace.
	(msp430_section_type_flags): Remove trailing whitespace.
	(msp430_unique_section): Remove space before closing parenthesis.
	(msp430_output_aligned_decl_common): Change 8 spaces to a tab.
	(msp430_builtins): Remove whitespace before left square bracket.
	(msp430_init_builtins):	Fix indentation.
	(msp430_expand_prologue): Remove whitespace before left square bracket.
	Remove space before closing parenthesis.
	(msp430_expand_epilogue): Remove whitespace before left square bracket.
	(msp430_split_movsi): Remove space before closing parenthesis.
	(helper_function_name_mappings): Fix indentation.
	(msp430_use_f5_series_hwmult): Fix whitespace.
	(use_32bit_hwmult): Likewise.
	(msp430_no_hwmult): Likewise.
	(msp430_output_labelref): Remove whitespace before left square bracket.
	(msp430_print_operand_raw): Likewise.
	(msp430_print_operand_addr): Likewise.
	(msp430_print_operand): Add two spaces after '.' in comment.
	Fix trailing whitespace.
	(msp430x_extendhisi): Fix indentation.
	* config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to
	tab.
	(PC_REGNUM): Likewise.
	(STACK_POINTER_REGNUM): Likewise.
	(CC_REGNUM): Likewise.

From-SVN: r274536
2019-08-15 12:55:33 +00:00
Richard Biener
8ed1d2fa2b re PR target/91454 (ICE in get_attr_avx_partial_xmm_update, at config/i386/i386.md:1804 since r274481)
2019-08-15  Richard Biener  <rguenther@suse.de>

	PR target/91454
	* config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New
	helper.
	(general_scalar_chain::make_vector_copies): Use it.

From-SVN: r274535
2019-08-15 12:44:23 +00:00
Jason Merrill
c735f8f1a0 Implement P0848R3, Conditionally Trivial Special Member Functions.
With Concepts, overloads of special member functions can differ in
constraints, and this paper clarifies how that affects class properties: if
a class has a more constrained trivial copy constructor and a less
constrained non-trivial copy constructor, it is still trivially copyable.

	* tree.c (special_memfn_p): New.
	* class.c (add_method): When overloading, hide ineligible special
	member fns.
	(check_methods): Set TYPE_HAS_COMPLEX_* here.
	* decl.c (grok_special_member_properties): Not here.
	* name-lookup.c (push_class_level_binding_1): Move overloaded
	functions case down, accept FUNCTION_DECL as target_decl.

From-SVN: r274534
2019-08-15 08:38:50 -04:00
Richard Biener
84cc60bf83 re PR tree-optimization/91445 (After memset, logical && operator produces false result, optimization level >=O1)
2019-08-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91445
	* gcc.dg/torture/pr91445.c: New testcase.

From-SVN: r274533
2019-08-15 12:05:31 +00:00
Bernd Edlinger
8340324579 function.c (assign_parm_setup_reg): Handle misaligned stack arguments.
2019-08-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * function.c (assign_parm_setup_reg): Handle misaligned stack arguments.

From-SVN: r274531
2019-08-15 11:37:21 +00:00
Martin Liska
bbedc1ae06 Clean up dead condition for operators in DCE.
2019-08-15  Martin Liska  <mliska@suse.cz>

	* tree-ssa-dce.c (propagate_necessity): We can't reach now
	operators with no arguments.
	(eliminate_unnecessary_stmts): Likewise here.

From-SVN: r274529
2019-08-15 11:29:37 +00:00
Richard Biener
21c1e20566 c-common.c (c_stddef_cpp_builtins): When the GIMPLE FE is enabled, define __SIZETYPE__.
2019-08-15  Richard Biener  <rguenther@suse.de>

	c-family/
	* c-common.c (c_stddef_cpp_builtins): When the GIMPLE FE is
	enabled, define __SIZETYPE__.

	* gcc.dg/pr80170.c: Adjust to use __SIZETYPE__.

From-SVN: r274528
2019-08-15 11:26:19 +00:00
Uros Bizjak
3b45ae635c * config/i386/i386.c (convertible_comparison_p): Fix argument declaration.
From-SVN: r274527
2019-08-15 13:09:38 +02:00
Uros Bizjak
c839844a42 i386-features.c (general_scalar_chain::convert_insn): Revert 2019-08-14 change.
* config/i386/i386-features.c (general_scalar_chain::convert_insn)
	<case COMPARE>: Revert 2019-08-14 change.
	(convertible_comparison_p): Revert 2019-08-14 change.  Return false
	for (TARGET_64BIT || mode != DImode).

From-SVN: r274526
2019-08-15 12:55:52 +02:00