Commit Graph

154568 Commits

Author SHA1 Message Date
Marek Polacek 786c6d10af re PR sanitizer/81223 (ICE in instrument_null at gcc/ubsan.c:1230)
PR sanitizer/81223
	* ubsan.c (instrument_null): Check get_base_address's result for null.

	* gcc.dg/ubsan/pr81223.c: New test.

From-SVN: r249687
2017-06-27 11:38:31 +00:00
Marc Glisse 1e7df2e63a Simple reassoc transforms in match.pd
2017-06-27  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.

gcc/testsuite/
	* gcc.dg/tree-ssa/assoc-1.c: New file.

From-SVN: r249686
2017-06-27 09:42:38 +00:00
Marc Glisse a889d6aa27 fenv.h builtins
2017-06-27  Marc Glisse  <marc.glisse@inria.fr>

	* builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
	BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
	(BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
	BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
	New function types.
	* builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
	BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
	BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
	BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
	BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
	BUILT_IN_FEUPDATEENV): New builtins.
	* tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
	TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
	* tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
	fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
	macros.
	(builtin_structptr_types): Adjust size.
	* tree.c (builtin_structptr_types): Add four entries.

From-SVN: r249685
2017-06-27 09:38:28 +00:00
Jerome Lambourg 931fae8133 vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
            Olivier Hainque  <hainque@adacore.com>

	* config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
	(TLS_SYM): New local macro, forcing reference to __tls__ on
	link command lines for VxWorks 7 RTPs, triggering initialization
	of tlsLib.
	(VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
	OS features TLS support, true for RTPs on VxWorks 7.
	* config/vxworks.c (vxworks_override_options): Setup emutls
	accordingly.


Co-Authored-By: Olivier Hainque <hainque@adacore.com>

From-SVN: r249684
2017-06-27 09:15:55 +00:00
Jakub Jelinek f6b3ca5a1a predict.c (test_prediction_value_range): Use -1U instead of -1 to avoid narrowing conversion warning.
* predict.c (test_prediction_value_range): Use -1U instead of -1
	to avoid narrowing conversion warning.
	* dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
	to avoid narrowing conversion warning.
	* opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
	-1.
	* optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.

From-SVN: r249683
2017-06-27 11:13:53 +02:00
Paolo Carlini 58b45c4f3f re PR c++/62046 (A catch in a class, without any try, compiles fine)
2017-06-27  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/62046
	* g++.dg/parse/catch2.C: New.

From-SVN: r249682
2017-06-27 09:00:52 +00:00
Jerome Lambourg a93e7e1413 vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for 64bit configurations.
2017-06-27  Jerome Lambourg  <lambourg@adacore.com>

	* config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
  	64bit configurations.
  	(PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
  	(SIZE_TYPE): Likewise.
  	* config/vxworks.c (vxworks_emutls_var_fields): Use
  	long_unsigned_type_node instead of unsigned_type_node as the offset
	field type, which is "pointer" mode in emutls.c.

From-SVN: r249681
2017-06-27 08:54:53 +00:00
Jakub Jelinek c103185290 re PR sanitizer/81209 (-fsanitize=undefined ICE on darwin)
PR sanitizer/81209
	* ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.

	* g++.dg/ubsan/pr81209.C: New test.

From-SVN: r249678
2017-06-27 09:23:54 +02:00
Jakub Jelinek 00296d7f68 re PR middle-end/81207 (tree check fail in simplify_builtin_call)
PR middle-end/81207
	* gimple-fold.c (replace_call_with_call_and_fold): Handle
	gimple_vuse copying separately from gimple_vdef copying.

	* gcc.c-torture/compile/pr81207.c: New test.

From-SVN: r249677
2017-06-27 09:22:14 +02:00
Marek Polacek 0c41863093 re PR bootstrap/81216 (bootstrap failed on i386 and powerpc64le)
PR bootstrap/81216
	* parser.c (cp_parser_already_scoped_statement): Initialize
	LOC_AFTER_LABELS.

	* g++.dg/warn/Wmultistatement-macros-1.C: New test.

From-SVN: r249676
2017-06-27 07:16:29 +00:00
Prathamesh Kulkarni d25c0cc1a5 value-prof.c (free_hist): Remove call to memset and the enclosing if condition.
2017-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* value-prof.c (free_hist): Remove call to memset and the enclosing if
	condition.

From-SVN: r249675
2017-06-27 06:13:54 +00:00
Ian Lance Taylor 936615752a libgo: add misc/cgo files
Copy all the misc/cgo files from the gc toolchain into libgo/misc.
    
    These will be used for testing purposes by later changes to the
    gotools directory.
    
    Reviewed-on: https://go-review.googlesource.com/46721

From-SVN: r249674
2017-06-27 04:21:40 +00:00
GCC Administrator 9913ef5866 Daily bump.
From-SVN: r249673
2017-06-27 00:16:19 +00:00
Ian Lance Taylor 8e51be6272 Makefile.am (s-zdefaultcc): Don't record $(bindir) for defaultCC or defaultCXX.
* Makefile.am (s-zdefaultcc): Don't record $(bindir) for defaultCC
	or defaultCXX.
	* Makefile.in: Rebuild.

From-SVN: r249669
2017-06-26 22:47:18 +00:00
Jim Wilson b971fa7f33 Fix for SPEC CPU2017 621.wrf_s failure, add missing locking code.
libgfortran/
	PR libfortran/81195
	* io/unit.c (get_unit): Call __gthread_mutex_lock before newunit_stack
	and newunit_tos references.  Call __gthread_mutex_unlock afterward.

From-SVN: r249667
2017-06-26 14:40:47 -07:00
Jason Merrill b0d1023d5f PR c++/81215 - deduction failure with variadic TTP.
* pt.c (unify_bound_ttp_args): Restore old logic for C++14 and down.

From-SVN: r249664
2017-06-26 14:49:18 -04:00
Ian Lance Taylor b5df99f741 syscall: don't define PtraceRegs for Alpha
It's now defined by mksysinfo.sh.
    
    Patch by Uros Bizjak.
    
    Reviewed-on: https://go-review.googlesource.com/46712

From-SVN: r249663
2017-06-26 17:59:12 +00:00
Ian Lance Taylor 0bcce674a7 libgo: redefine ia64 struct names around linux/ptrace.h
Avoid https://sourceware.org/bugzilla/show_bug.cgi?id=762.
    
    Patch by Andreas Schwab.
    
    Reviewed-on: https://go-review.googlesource.com/46711

From-SVN: r249662
2017-06-26 17:56:14 +00:00
Martin Sebor 4b377e01ce PR c++/81169 - -Wclass-memaccess illegitimate warning related to volatile
gcc/cp/ChangeLog:

	PR c++/81169
	* call.c (maybe_warn_class_memaccess): Preserve explicit conversions
	to detect casting away cv-qualifiers.

gcc/testsuite/ChangeLog:

	PR c++/81169
	* g++.dg/Wclass-memaccess-2.C: New test.

From-SVN: r249660
2017-06-26 11:19:15 -06:00
Jerome Lambourg b269e8998d config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines for all vxworks7 targets.
2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
            Olivier Hainque  <hainque@adacore.com>

	* config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
	for all vxworks7 targets.
	* config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
	(VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
	(VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
	variations for VX6/VX7 and 32/64bits later on in ...
	(VXWORKS_LIB_SPEC): Leverage new macros.
	(VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
	as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.


Co-Authored-By: Olivier Hainque <hainque@adacore.com>

From-SVN: r249659
2017-06-26 17:04:44 +00:00
Nathan Sidwell d6ef53f241 cp-tree.h (lang_decl_fn): Remove assignment_operator_p field.
gcc/cp/
	* cp-tree.h (lang_decl_fn): Remove assignment_operator_p field.
	(DECL_COMPLETE_CONSTRUCTOR_P): Directly compare
	identifier.
	(DECL_BASE_CONSTRUCTOR_P, DECL_COMPLETE_DESTRUCTOR_P)
	DECL_BASE_DESTRUCTOR_P, DECL_DELETING_DESTRUCTOR_P): Likewise.
	(DECL_ASSIGNMENT_OPERATOR_P): Use IDENTIFIER_ASSIGN_OP_P.
	* decl.c (grok_op_properties): Adjust identifier checking.
	* init.c (expand_default_init): Adjust identifier descision.
	* method.c (implicitly_declare_fn): Don't use
	DECL_ASSIGNMENT_OPERATOR_P.
	* search.c (lookup_fnfields_1): Use IDENTIFIER_CTOR_P,
	IDENTIFIER_DTOR_P.
	* call.c (in_charge_arg_for_name): Reimplement.
	(build_special_member_call): Use IDENTIFIER_CDTOR_P,
	IDENTIFIER_DTOR_P.

	libcc1/
	* libcp1plugin.cc (plugin_build_decl): Don't set
	DECL_ASSIGNMENT_OPERATOR_P.
(--This line, and those below, will be ignored--

M    gcc/cp/init.c
M    gcc/cp/decl.c
M    gcc/cp/method.c
M    gcc/cp/cp-tree.h
M    gcc/cp/call.c
M    gcc/cp/search.c
M    gcc/cp/ChangeLog
M    libcc1/ChangeLog
M    libcc1/libcp1plugin.cc

From-SVN: r249657
2017-06-26 16:38:40 +00:00
Jerome Lambourg 0ffdc30078 vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define _VX_TOOL_FAMILY and _VX_TOOL to gnu.
2017-06-26  Jerome Lambourg  <lambourg@adacore.com>

	* config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
	_VX_TOOL_FAMILY and _VX_TOOL to gnu.

From-SVN: r249656
2017-06-26 15:17:44 +00:00
Carl Love 952ac94508 rs6000-c.c: Add support for built-in functions vector bool char vec_reve (vector bool char)...
gcc/ChangeLog:

2017-06-26  Carl Love  <cel@us.ibm.com>

	* config/rs6000/rs6000-c.c: Add support for built-in functions
	vector bool char vec_reve (vector bool char);
	vector signed char vec_reve (vector signed char);
	vector unsigned char vec_reve (vector unsigned char);
	vector bool int vec_reve (vector bool int);
	vector signed int vec_reve (vector signed int);
	vector unsigned int vec_reve (vector unsigned int);
	vector bool long long vec_reve (vector bool long long);
	vector signed long long vec_reve (vector signed long long);
	vector unsigned long long vec_reve (vector unsigned long long);
	vector bool short vec_reve (vector bool short);
	vector signed short vec_reve (vector signed short);
	vector double vec_reve (vector double);
	vector float vec_reve (vector float);
	* config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
	VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
	* config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
	(altivec_vreve): New pattern.
	* config/rs6000/altivec.h (vec_reve): New define.
	* doc/extend.texi (vec_rev): Update the built-in documentation file
	for the new built-in functions.

gcc/testsuite/ChangeLog:

2017-06-26  Carl Love  <cel@us.ibm.com>

	* gcc.target/powerpc/builtins-3-vec_reve-runnable.c:
	Add new runnable test file for the vec_rev built-ins.

From-SVN: r249650
2017-06-26 14:29:48 +00:00
William Schmidt 226ab0a808 re PR tree-optimization/71815 (SLSR misses several PHI candidate cases)
[gcc]

2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/71815
	* gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
	function.
	(find_basis_for_candidate): Call uses_consumed_by_stmt rather than
	has_single_use.
	(slsr_process_phi): Likewise.
	(replace_uncond_cands_and_profitable_phis): Don't replace a
	multiply candidate with a stride of 1 (copy or cast).
	(phi_incr_cost): Call uses_consumed_by_stmt rather than
	has_single_use.
	(lowest_cost_path): Likewise.
	(total_savings): Likewise.

[gcc/testsuite]

2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/71815
	* gcc.dg/tree-ssa/slsr-35.c: Remove -fno-code-hoisting workaround.
	* gcc.dg/tree-ssa/slsr-36.c: Likewise.

From-SVN: r249649
2017-06-26 14:19:33 +00:00
Bill Schmidt df11b2ea7f gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New function.
[gcc]

2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
	function.
	(find_basis_for_candidate): Call uses_consumed_by_stmt rather than
	has_single_use.
	(slsr_process_phi): Likewise.
	(replace_uncond_cands_and_profitable_phis): Don't replace a
	multiply candidate with a stride of 1 (copy or cast).
	(phi_incr_cost): Call uses_consumed_by_stmt rather than
	has_single_use.
	(lowest_cost_path): Likewise.
	(total_savings): Likewise.

[gcc/testsuite]

2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.dg/tree-ssa/slsr-35.c: Remove -fno-code-hoisting workaround.
	* gcc.dg/tree-ssa/slsr-36.c: Likewise.

From-SVN: r249648
2017-06-26 14:17:35 +00:00
Renlin Li fa7ccca021 [PATCH][Testsuite]Use user defined memmove in gcc.c-torture/execute/builtins/memops-asm-lib.c
After the change r249278. bcopy is folded into memmove. And in newlib
aarch64 memmove implementation, it will call memcpy in certain conditions.
The memcpy defined in memops-asm-lib.c will abort when the test is running.

A user defined memmove function is defined to bypass the library one.
So that memcpy won't be called accidentally.

gcc/testsuite/

	* gcc.c-torture/execute/builtins/memops-asm-lib.c (my_memmove): New.
	* gcc.c-torture/execute/builtins/memops-asm.c (memmove): Declare memmove.


Co-Authored-By: Szabolcs Nagy <szabolcs.nagy@arm.com>

From-SVN: r249647
2017-06-26 13:28:32 +00:00
Richard Biener 5a5c2d16e7 re PR target/81175 (EXC_BAD_ACCESS in ::slpeel_duplicate_current_defs_from_edges(edge, edge, edge, edge) at is-a.h:192)
2017-06-26  Richard Biener  <rguenther@suse.de>

	PR target/81175
	* config/i386/i386.c (ix86_init_mmx_sse_builtins):
	Use def_builtin_pure for all gather builtins.

	* gfortran.dg/pr81175.f: New testcase.

From-SVN: r249645
2017-06-26 10:34:49 +00:00
Richard Biener 75f0112f1b re PR tree-optimization/81203 (tail recursion: internal compiler error: verify_ssa failed)
2017-06-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/81203
	* tree-tailcall.c (find_tail_calls): Do not move stmts into
	non-dominating BBs.

	* gcc.dg/torture/pr81203.c: New testcase.

From-SVN: r249644
2017-06-26 10:33:12 +00:00
Marek Polacek 3e2becc495 re PR c/80116 (Warn about macros expanding to multiple statements)
PR c/80116
	* c-common.h (warn_for_multistatement_macros): Declare.
	* c-warn.c: Include "c-family/c-indentation.h".
	(warn_for_multistatement_macros): New function.
	* c.opt (Wmultistatement-macros): New option.
	* c-indentation.c (guard_tinfo_to_string): No longer static.
	Change the parameter type to "enum rid".  Handle RID_SWITCH.
	* c-indentation.h (guard_tinfo_to_string): Declare.

	* c-parser.c (c_parser_if_body): Set the location of the
	body of the conditional after parsing all the labels.  Call
	warn_for_multistatement_macros.
	(c_parser_else_body): Likewise.
	(c_parser_switch_statement): Likewise.
	(c_parser_while_statement): Likewise.
	(c_parser_for_statement): Likewise.
	(c_parser_statement): Add a default argument.  Save the location
	after labels have been parsed.
	(c_parser_c99_block_statement): Likewise.

	* parser.c (cp_parser_statement): Add a default argument.  Save the
	location of the expression-statement after labels have been parsed.
	(cp_parser_implicitly_scoped_statement): Set the location of the
	body of the conditional after parsing all the labels.  Call
	warn_for_multistatement_macros.
	(cp_parser_already_scoped_statement): Likewise.

	* doc/invoke.texi: Document -Wmultistatement-macros.

	* c-c++-common/Wmultistatement-macros-1.c: New test.
	* c-c++-common/Wmultistatement-macros-2.c: New test.
	* c-c++-common/Wmultistatement-macros-3.c: New test.
	* c-c++-common/Wmultistatement-macros-4.c: New test.
	* c-c++-common/Wmultistatement-macros-5.c: New test.
	* c-c++-common/Wmultistatement-macros-6.c: New test.
	* c-c++-common/Wmultistatement-macros-7.c: New test.
	* c-c++-common/Wmultistatement-macros-8.c: New test.
	* c-c++-common/Wmultistatement-macros-9.c: New test.
	* c-c++-common/Wmultistatement-macros-10.c: New test.
	* c-c++-common/Wmultistatement-macros-11.c: New test.

From-SVN: r249643
2017-06-26 10:02:27 +00:00
Eric Botcazou 945653db61 * c-c++-common/ubsan/sanitize-recover-7.c (dg-options): Add -w.
From-SVN: r249641
2017-06-26 09:49:08 +00:00
Maxim Ostapenko 0666865c59 * MAINTAINERS: Add myself to Write After Approval.
From-SVN: r249640
2017-06-26 12:44:49 +03:00
Christophe Lyon c8e3c356e0 [ARM, testsuite] Add -mfloat-abi=hard to arm_neon_ok
2017-06-02  Christophe Lyon  <christophe.lyon@linaro.org>

	gcc/testsuite/
	* lib/target-supports.exp
	(check_effective_target_arm_neon_ok_nocache): Add flags with
	-mfloat-abi=hard. Include arm_neon.h.
	(check_effective_target_arm_neon_ok_no_float_abi_nocache): New.
	(check_effective_target_arm_neon_ok_no_float_abi): New.
	* gcc.target/arm/lto/pr65837_0.c: Require
	arm_neon_ok_no_float_abi. Add -mfpu=neon to dg-lto-options.
	* gcc.target/arm/lto/pr65837-attr_0.c: Require
	arm_neon_ok_no_float_abi. Remove dg-suppress-ld-options.

	gcc/
	* doc/sourcebuild.texi (ARM-specific attributes): Document new
	arm_neon_ok_no_float_abi effective target.

From-SVN: r249639
2017-06-26 11:25:55 +02:00
Richard Biener 25853b3348 re PR tree-optimization/80928 (SLP vectorization does not handle induction in outer loop vectorization)
2017-06-26  Richard Biener  <rguenther@suse.de>

        PR tree-optimization/80928
	* cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
	(copy_bbs): Set BB_DUPLICATED flag early.
	(execute_on_growing_pred): Do not execute for BB_DUPLICATED
	marked blocks.
	(execute_on_shrinking_pred): Likewise.
	* tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
	BB_DUPLICATED blocks.
	* tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
	iterate over all PHIs considering removal of *gsi.

From-SVN: r249638
2017-06-26 07:19:37 +00:00
GCC Administrator ddc36d5a1d Daily bump.
From-SVN: r249637
2017-06-26 00:16:27 +00:00
GCC Administrator 97adb48b8e Daily bump.
From-SVN: r249632
2017-06-25 00:16:23 +00:00
Jerry DeLisle ab3a378a6b re PR fortran/81160 (arith.c:2009: bad statement order ?)
2017-06-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/81160
	* arith.c (wprecision_int_real): Set return value before
	mpz_clear and then return after it.

From-SVN: r249627
2017-06-24 21:22:08 +00:00
Paolo Carlini 22235619ba re PR c++/62315 (do not print typename in diagnostic if the original code does not have it)
/cp
2017-06-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/62315
	* parser.c (cp_parser_diagnose_invalid_type_name): Don't print
	'typename' in error messages about missing 'typename'.

/testsuite
2017-06-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/62315
	* g++.dg/parse/typedef2.C: Specify a dg-error string.

From-SVN: r249626
2017-06-24 19:31:24 +00:00
Thomas Koenig e56e3fda60 re PR fortran/52473 (CSHIFT slow - inline it?)
2017-06-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/52473
	* Makefile.am:  Add i_cshift1a_c.  Add rules to generate files
	from cshift1a.m4.
	* Makefile.in: Regenerated.
	* m4/cshift1a.m4: New file.
	* m4/cshift.m4 (cshift1): Split up inner loop by removing
	condition. Use memcpy where possible.  Call helper functions
	based on dtype.
	* libgfortran.h: Add prototypes for cshift1_16_c10,
	cshift1_16_c16, cshift1_16_c4, cshift1_16_c8, cshift1_16_i1,
	cshift1_16_i16, cshift1_16_i2, cshift1_16_i4, cshift1_16_i8,
	cshift1_16_r10, cshift1_16_r16, cshift1_16_r4, cshift1_16_r8,
	cshift1_4_c10, cshift1_4_c16, cshift1_4_c4, cshift1_4_c8,
	cshift1_4_i1, cshift1_4_i16, cshift1_4_i2, cshift1_4_i4,
	cshift1_4_i8, cshift1_4_r10, cshift1_4_r16, cshift1_4_r4,
	cshift1_4_r8, cshift1_8_c10, cshift1_8_c16, cshift1_8_c4,
	cshift1_8_c8, cshift1_8_i1, cshift1_8_i16, cshift1_8_i2,
	cshift1_8_i4, cshift1_8_i8, cshift1_8_r10, cshift1_8_r16,
	cshift1_8_r4 and cshift1_8_r8.
	* generated/cshift1_16_c10.c: New file, generated from cshift1a.m4.
	* generated/cshift1_16_c16.c: New file, generated from cshift1a.m4.
	* generated/cshift1_16_c4.c: New file, generated from cshift1a.m4.
	* generated/cshift1_16_c8.c: New file, generated from cshift1a.m4.
	* generated/cshift1_16_i1.c: New file, generated from cshift1a.m4.
	* generated/cshift1_16_i16.c: New file, generated from cshift1a.m4.
	* generated/cshift1_16_i2.c: New file, generated from cshift1a.m4.
	* generated/cshift1_16_i4.c: New file, generated from cshift1a.m4.
	* generated/cshift1_16_i8.c: New file, generated from cshift1a.m4.
	* generated/cshift1_16_r10.c: New file, generated from cshift1a.m4.
	* generated/cshift1_16_r16.c: New file, generated from cshift1a.m4.
	* generated/cshift1_16_r4.c: New file, generated from cshift1a.m4.
	* generated/cshift1_16_r8.c: New file, generated from cshift1a.m4.
	* generated/cshift1_4_c10.c: New file, generated from cshift1a.m4.
	* generated/cshift1_4_c16.c: New file, generated from cshift1a.m4.
	* generated/cshift1_4_c4.c: New file, generated from cshift1a.m4.
	* generated/cshift1_4_c8.c: New file, generated from cshift1a.m4.
	* generated/cshift1_4_i1.c: New file, generated from cshift1a.m4.
	* generated/cshift1_4_i16.c: New file, generated from cshift1a.m4.
	* generated/cshift1_4_i2.c: New file, generated from cshift1a.m4.
	* generated/cshift1_4_i4.c: New file, generated from cshift1a.m4.
	* generated/cshift1_4_i8.c: New file, generated from cshift1a.m4.
	* generated/cshift1_4_r10.c: New file, generated from cshift1a.m4.
	* generated/cshift1_4_r16.c: New file, generated from cshift1a.m4.
	* generated/cshift1_4_r4.c: New file, generated from cshift1a.m4.
	* generated/cshift1_4_r8.c: New file, generated from cshift1a.m4.
	* generated/cshift1_8_c10.c: New file, generated from cshift1a.m4.
	* generated/cshift1_8_c16.c: New file, generated from cshift1a.m4.
	* generated/cshift1_8_c4.c: New file, generated from cshift1a.m4.
	* generated/cshift1_8_c8.c: New file, generated from cshift1a.m4.
	* generated/cshift1_8_i1.c: New file, generated from cshift1a.m4.
	* generated/cshift1_8_i16.c: New file, generated from cshift1a.m4.
	* generated/cshift1_8_i2.c: New file, generated from cshift1a.m4.
	* generated/cshift1_8_i4.c: New file, generated from cshift1a.m4.
	* generated/cshift1_8_i8.c: New file, generated from cshift1a.m4.
	* generated/cshift1_8_r10.c: New file, generated from cshift1a.m4.
	* generated/cshift1_8_r16.c: New file, generated from cshift1a.m4.
	* generated/cshift1_8_r4.c: New file, generated from cshift1a.m4.
	* generated/cshift1_8_r8.c: New file, generated from cshift1a.m4.

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

        PR fortran/52473
	* gfortran.dg/cshift_2.f90:  New test.

From-SVN: r249620
2017-06-24 07:07:56 +00:00
GCC Administrator ef5b7d19b6 Daily bump.
From-SVN: r249619
2017-06-24 00:16:20 +00:00
Jason Merrill e2e80f2f3c PR c++/79056 - C++17 ICE with invalid template syntax.
* parser.c (cp_parser_simple_type_specifier): Don't assume that type
	is a TYPE_DECL.
	(cp_parser_check_for_invalid_template_id): Handle TYPE_DECL.
	* pt.c (template_placeholder_p): New.
	* cp-tree.h: Declare it.

From-SVN: r249614
2017-06-23 19:29:51 -04:00
Jim Wilson ee444c5f45 Fix missing Aarch64 falkor/qdf24xx options.
gcc/
	* doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
	qdf24xx.

From-SVN: r249613
2017-06-23 14:40:55 -07:00
Jim Wilson d3f062be9c Testcase for FSF GCC bug 79794.
gcc/testsuite/
	PR middle-end/79794
	* gcc.target/aarch64/pr79794.c: New.

From-SVN: r249612
2017-06-23 14:01:32 -07:00
Ian Lance Taylor f1857c6369 runtime: complete defer handling in CgocallBackDone
When C code calls a Go function, it actually calls a function
    generated by cgo. That function is written in Go, and, among other
    things, it calls the real Go function like this:
            CgocallBack()
            defer CgocallBackDone()
            RealGoFunction()
    The deferred CgocallBackDone function enters syscall mode as we return
    to C. Typically the C function will then eventually return to Go.
    
    However, in the case where the C function is running on a thread
    created in C, it will not return to Go. For that case we will have
    allocated an m struct, with an associated g struct, for the duration
    of the Go code, and when the Go is complete we will return the m and g
    to a free list.
    
    That all works, but we are running in a deferred function, which means
    that we have been invoked by deferreturn, and deferreturn expects to
    do a bit of cleanup to record that the defer has been completed. Doing
    that cleanup while using an m and g that have already been returned to
    the free list is clearly a bad idea. It was kind of working because
    deferreturn was holding the g pointer in a local variable, but there
    were races with some other thread picking up and using the newly freed g.
    It was also kind of working because of a special check in freedefer;
    that check is no longer necessary.
    
    This patch changes the special case of releasing the m and g to do the
    defer cleanup in CgocallBackDone itself.
    
    This patch also checks for the special case of a panic through
    CgocallBackDone. In that special case, we don't want to release the m
    and g. Since we are returning to C code that was not called by Go
    code, we know that the panic is not going to be caught and we are
    going to exit the program. So for that special case we keep the m and
    g structs so that the rest of the panic code can use them.
    
    Reviewed-on: https://go-review.googlesource.com/46530

From-SVN: r249611
2017-06-23 20:19:40 +00:00
Ian Lance Taylor 0f0d0eaae5 cmd/go: don't require GOROOT to exist for gccgo
Reviewed-on: https://go-review.googlesource.com/46590

From-SVN: r249609
2017-06-23 20:11:27 +00:00
Aaron Sawdey 8845cb377a rs6000-string.c: (expand_block_clear...
2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

	* config/rs6000/rs6000-string.c: (expand_block_clear,
	do_load_for_compare, select_block_compare_mode,
	compute_current_alignment, expand_block_compare,
	expand_strncmp_align_check, expand_strn_compare,
	expand_block_move, rs6000_output_load_multiple)
	Move functions related to string/block move/compare
	to a separate file.
	* config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
	* config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
	for this function which is now used in two files.
	* config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
	* config.gcc: Add rs6000-string.o to extra_objs for
	targets powerpc*-*-* and rs6000*-*-*.

From-SVN: r249608
2017-06-23 14:59:42 -05:00
Michael Meissner 37416b699f re PR target/80510 (Optimize Power7/power8 Altivec load/stores)
[gcc]
2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/80510
	* config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
	32-bit, since indexed is not valid for DImode.
	(mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
	3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
	(define_peephole2 for Altivec d-form load): Add 32-bit support.
	(define_peephole2 for Altivec d-form store): Likewise.

[gcc/testsuite]
2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/80510
	* gcc.target/powerpc/pr80510-1.c: Allow test to run on 32-bit.
	* gcc.target/powerpc/pr80510-2.c: Likewise.

From-SVN: r249607
2017-06-23 18:25:10 +00:00
Michael Meissner 9761349c76 re PR ipa/81185 (Target clones support generates awkward names)
2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR ipa/81185
	* multiple_target.c (create_dispatcher_calls): Only create the
	dispatcher call if the function is the default clone of a
	versioned function.

From-SVN: r249605
2017-06-23 18:08:31 +00:00
Jakub Jelinek aa9ace3e6f trans.c (gnat_to_gnu): Initialize sync to false to avoid UB.
* gcc-interface/trans.c (gnat_to_gnu): Initialize sync to false to
	avoid UB.

From-SVN: r249604
2017-06-23 19:46:21 +02:00
Segher Boessenkool 08c273bb9c Fix expand_builtin_atomic_fetch_op for pre-op (PR80902)
__atomic_add_fetch adds a value to some memory, and returns the result.
If there is no direct support for this, expand_builtin_atomic_fetch_op
is asked to implement this as __atomic_fetch_add (which returns the
original value of the mem), followed by the addition.  Now, the
__atomic_add_fetch could have been a tail call, but we shouldn't
perform the __atomic_fetch_add as a tail call: following code would
not be executed, and in fact thrown away because there is a barrier
after tail calls.

This fixes it.


	PR middle-end/80902
	* builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
	a call, force the call to not be a tail call.

From-SVN: r249603
2017-06-23 19:37:27 +02:00
Eric Botcazou eded3fe592 os-unix-sysdep.c (__cilkrts_getticks): Adjust preprocessor test for SPARC/Linux.
* runtime/config/sparc/os-unix-sysdep.c (__cilkrts_getticks): Adjust
	preprocessor test for SPARC/Linux.
	* runtime/jmpbuf.h (CILK_[UN]ADJUST_SP): Likewise.

From-SVN: r249601
2017-06-23 17:33:43 +00:00