156896 Commits

Author SHA1 Message Date
Jakub Jelinek
07d7c611fc flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.
* flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.  Or
	SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
	BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
	* opts.c (sanitizer_opts): Add builtin.
	* ubsan.c (instrument_builtin): New function.
	(pass_ubsan::execute): Call it.
	(pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
	* doc/invoke.texi: Document -fsanitize=builtin.

	* c-c++-common/ubsan/builtin-1.c: New test.

From-SVN: r253888
2017-10-19 14:09:52 +02:00
Jakub Jelinek
5d3805fca3 ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch builtins...
* ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
	builtins, store max (log2 (align), 0) into uchar field instead of
	align into uptr field.
	(ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
	store uchar 0 field instead of uptr 0 field.
	(instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
	instead of passing one address of struct with 2 locations pass
	two addresses of structs with 1 location each.
	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
	BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
	BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
	BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
	(BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
	BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
	BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
	BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.

	* c-c++-common/ubsan/float-cast-overflow-1.c: Drop value keyword
	from expected output regexps.
	* c-c++-common/ubsan/float-cast-overflow-2.c: Likewise.
	* c-c++-common/ubsan/float-cast-overflow-3.c: Likewise.
	* c-c++-common/ubsan/float-cast-overflow-4.c: Likewise.
	* c-c++-common/ubsan/float-cast-overflow-5.c: Likewise.
	* c-c++-common/ubsan/float-cast-overflow-6.c: Likewise.
	* c-c++-common/ubsan/float-cast-overflow-8.c: Likewise.
	* c-c++-common/ubsan/float-cast-overflow-9.c: Likewise.
	* c-c++-common/ubsan/float-cast-overflow-10.c: Likewise.
	* g++.dg/ubsan/float-cast-overflow-bf.C: Likewise.
	* gcc.dg/ubsan/float-cast-overflow-bf.c: Likewise.
	* g++.dg/asan/default-options-1.C (__asan_default_options): Add
	used attribute.
	* g++.dg/asan/asan_test.C: Run with ASAN_OPTIONS=handle_segv=2
	in the environment.

	* All source files: Merge from upstream 315899.
        * asan/Makefile.am (nodist_saninclude_HEADERS): Add
	include/sanitizer/tsan_interface.h.
        * asan/libtool-version: Bump the libasan SONAME.
	* lsan/Makefile.am (sanitizer_lsan_files): Add lsan_common_mac.cc.
	(lsan_files): Add lsan_linux.cc, lsan_mac.cc and lsan_malloc_mac.cc.
        * sanitizer_common/Makefile.am (sanitizer_common_files): Add
	sancov_flags.cc, sanitizer_allocator_checks.cc,
	sanitizer_coverage_libcdep_new.cc, sanitizer_errno.cc,
	sanitizer_file.cc, sanitizer_mac_libcdep.cc and
	sanitizer_stoptheworld_mac.cc.  Remove sanitizer_coverage_libcdep.cc
	and sanitizer_coverage_mapping_libcdep.cc.
        * tsan/Makefile.am (tsan_files): Add tsan_external.cc.
	* ubsan/Makefile.am (DEFS): Add -DUBSAN_CAN_USE_CXXABI=1.
	(ubsan_files): Add ubsan_init_standalone.cc and
	ubsan_signals_standalone.cc.
	* ubsan/libtool-version: Bump the libubsan SONAME.
        * asan/Makefile.in: Regenerate.
        * lsan/Makefile.in: Regenerate.
        * sanitizer_common/Makefile.in: Regenerate.
        * tsan/Makefile.in: Regenerate.
	* ubsan/Makefile.in: Regenerate.

From-SVN: r253887
2017-10-19 13:23:59 +02:00
Martin Liska
93659712d9 Revert r238089 (PR driver/81829).
2017-10-19  Martin Liska  <mliska@suse.cz>

	PR driver/81829
	* file-find.c (remove_prefix): Remove.
	* file-find.h (remove_prefix): Likewise.
	* gcc-ar.c: Remove smartness of lookup.

From-SVN: r253886
2017-10-19 11:08:28 +00:00
Segher Boessenkool
d8198d1cd0 rs6000: Fix "missing mode" on UNSPEC_TOCSLOT
Currently gen* warn about a missing mode on an UNSPEC_TOCSLOT unspec in
some call patterns.  Those unspecs are created from rs6000.c, with Pmode
always.  This patch fixes the patterns to say :P as well.


	* config/rs6000/rs6000.md (*call_indirect_aix<mode>,
	*call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
	*call_value_indirect_elfv2<mode>): Add correct mode to the unspec.

From-SVN: r253885
2017-10-19 12:55:51 +02:00
Jakub Jelinek
1855f81251 re PR target/82580 (Optimize comparisons for __int128 on x86-64)
PR target/82580
	* config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
	(setcc + and to xor + setcc): New peephole2.

	* gcc.target/i386/pr82580.c: Use {\msbb} instead of "sbb" in
	scan-assembler-times.  Check that there are no movzb* instructions
	if lp64.

From-SVN: r253884
2017-10-19 10:37:04 +02:00
Tom de Vries
8a78f1a1b6 Specify required stack size for gcc.dg/tree-ssa/ldist-27.c
2017-10-19  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/tree-ssa/ldist-27.c: Use dg-require-stack-size.

From-SVN: r253883
2017-10-19 08:24:26 +00:00
Tom de Vries
7ff6bdb727 Add dg-require-stack-size
2017-10-19  Tom de Vries  <tom@codesourcery.com>

	* lib/target-supports-dg.exp (dg-require-stack-size): New proc.
	* gcc.c-torture/execute/20030209-1.c: Use dg-require-stack-size.
	* gcc.c-torture/execute/20040805-1.c: Same.
	* gcc.c-torture/execute/920410-1.c: Same.
	* gcc.c-torture/execute/921113-1.c: Same.
	* gcc.c-torture/execute/921208-2.c: Same.
	* gcc.c-torture/execute/comp-goto-1.c: Same.
	* gcc.c-torture/execute/pr20621-1.c: Same.
	* gcc.c-torture/execute/pr28982b.c: Same.
	* gcc.dg/tree-prof/comp-goto-1.c: Same.

	* doc/sourcebuild.texi (Test Directives, Variants of
	dg-require-support): Add dg-require-stack-size.

From-SVN: r253882
2017-10-19 08:11:26 +00:00
Bernhard Reutner-Fischer
439d235025 Derive interface buffers from max name length
2017-10-19  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* interface.c (check_sym_interfaces, check_uop_interfaces,
	gfc_check_interfaces): Base interface_name buffer off
	GFC_MAX_SYMBOL_LEN.

From-SVN: r253881
2017-10-19 09:55:43 +02:00
Aldy Hernandez
cf64af861f Update my last ChangeLog entry to properly specify overloaded functions.
From-SVN: r253880
2017-10-19 07:51:54 +00:00
Martin Liska
36208e6037 Do not instrument use-after-scope for vars with large alignment (PR sanitizer/82517).
2017-10-19  Martin Liska  <mliska@suse.cz>

	PR sanitizer/82517
	* gimplify.c (gimplify_decl_expr): Do not instrument variables
	that have a large alignment.
	(gimplify_target_expr): Likewise.
2017-10-19  Martin Liska  <mliska@suse.cz>

	PR sanitizer/82517
	* gcc.dg/asan/pr82517.c: New test.

From-SVN: r253879
2017-10-19 07:50:48 +00:00
Jakub Jelinek
cd30a0b8fe re PR fortran/82568 ([6/7/8] ICE with do-loop inside BLOCK inside omp)
PR fortran/82568
	* gfortran.h (gfc_resolve_do_iterator): Add a bool arg.
	(gfc_resolve_omp_local_vars): New declaration.
	* openmp.c (omp_current_ctx): Make static.
	(gfc_resolve_omp_parallel_blocks): Handle EXEC_OMP_TASKLOOP
	and EXEC_OMP_TASKLOOP_SIMD.
	(gfc_resolve_do_iterator): Add ADD_CLAUSE argument, if false,
	don't actually add any clause.  Move omp_current_ctx test
	earlier.
	(handle_local_var, gfc_resolve_omp_local_vars): New functions.
	* resolve.c (gfc_resolve_code): Call gfc_resolve_omp_parallel_blocks
	instead of just gfc_resolve_omp_do_blocks for EXEC_OMP_TASKLOOP
	and EXEC_OMP_TASKLOOP_SIMD.
	(gfc_resolve_code): Adjust gfc_resolve_do_iterator caller.
	(resolve_codes): Call gfc_resolve_omp_local_vars.

	* gfortran.dg/gomp/pr82568.f90: New test.

From-SVN: r253878
2017-10-19 09:38:59 +02:00
Bernhard Reutner-Fischer
bcc478b964 Use Levenshtein spelling suggestions in Fortran FE
gcc/fortran/ChangeLog

2017-10-19  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* gfortran.h (gfc_lookup_function_fuzzy): New declaration.
	(gfc_closest_fuzzy_match): New declaration.
	(vec_push): New definition.
	* misc.c (gfc_closest_fuzzy_match): New definition.
	* resolve.c: Include spellcheck.h.
	(lookup_function_fuzzy_find_candidates): New static function.
	(lookup_uop_fuzzy_find_candidates): Likewise.
	(lookup_uop_fuzzy): Likewise.
	(resolve_operator) <INTRINSIC_USER>: Call lookup_uop_fuzzy.
	(gfc_lookup_function_fuzzy): New definition.
	(resolve_unknown_f): Call gfc_lookup_function_fuzzy.
	* interface.c (check_interface0): Likewise.
	(lookup_arg_fuzzy_find_candidates): New static function.
	(lookup_arg_fuzzy ): Likewise.
	(compare_actual_formal): Call lookup_arg_fuzzy.
	* symbol.c: Include spellcheck.h.
	(lookup_symbol_fuzzy_find_candidates): New static function.
	(lookup_symbol_fuzzy): Likewise.
	(gfc_set_default_type): Call lookup_symbol_fuzzy.
	(lookup_component_fuzzy_find_candidates): New static function.
	(lookup_component_fuzzy): Likewise.
	(gfc_find_component): Call lookup_component_fuzzy.

gcc/testsuite/ChangeLog

2017-10-19  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* gfortran.dg/spellcheck-operator.f90: New testcase.
	* gfortran.dg/spellcheck-procedure_1.f90: New testcase.
	* gfortran.dg/spellcheck-procedure_2.f90: New testcase.
	* gfortran.dg/spellcheck-structure.f90: New testcase.
	* gfortran.dg/spellcheck-parameter.f90: New testcase.

From-SVN: r253877
2017-10-19 09:24:33 +02:00
GCC Administrator
fba832054d Daily bump.
From-SVN: r253876
2017-10-19 00:16:14 +00:00
Thomas Koenig
e35ba10a77 re PR fortran/82567 ([6/7/8] gfortran takes a long time to compile a simple implied-do with -Optimization.)
2017-10-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/82567
	* frontend-passes.c (combine_array_constructor): If an array
	constructor is all constants and has more elements than a small
	constant, don't convert a*[b,c] to [a*b,a*c] to reduce compilation
	times.

2017-10-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/82567
	* gfortran.dg/array_constructor_51.f90: New test.

From-SVN: r253872
2017-10-18 21:29:37 +00:00
Segher Boessenkool
9d0d0a5a13 ira: volatile asm's are not moveable (PR82602)
A volatile asm statement can not be moved (relative to other volatile
asm, etc.), but IRA would do it nevertheless.  This patch fixes it.


	PR rtl-optimization/82602
	* ira.c (rtx_moveable_p): Return false for volatile asm.

From-SVN: r253869
2017-10-18 23:08:18 +02:00
Thomas Koenig
b04bebdb1d re PR fortran/79795 (Fortran ICE in resolve_symbol starting with r163221)
2017-10-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/79795
	* resolve.c (resovle_symbol): Change gcc_assert to
	sensible error message.

2017-10-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/79795
	* gfortran.dg/assumed_size_2.f90: New test.

From-SVN: r253868
2017-10-18 20:32:34 +00:00
Uros Bizjak
fe94440235 re PR target/82580 (Optimize comparisons for __int128 on x86-64)
PR target/82580
	* config/i386/i386-modes.def (CCGZ): New CC mode.
	* config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
	* config/i386/predicates.md (ix86_comparison_operator):
	Handle CCGZmode.
	* config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
	Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
	with double-word subtraction.
	(put_condition_code): Handle CCGZmode.

testsuite/ChangeLog:

	PR target/82580
	* gcc.target/i386/pr82580.c: New test.

From-SVN: r253867
2017-10-18 22:19:05 +02:00
Aldy Hernandez
e61a4f5212 wide-int.cc (debug): New.
* wide-int.cc (debug) [const wide_int &]: New.
	(debug) [const wide_int *]: New.
	(debug) [const widest_int &]: New.
	(debug) [const widest_int *]: New.

From-SVN: r253866
2017-10-18 19:49:08 +00:00
Thomas Koenig
9cfd7f2c79 re PR libfortran/82233 (execute_command_line causes program to stop when command fails (or does not exist))
2017-10-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libfortran/82233
	* gfortran.dg/execute_command_line_3.f90:  Remove unneeded output.
	Move test with wait=.false. before the last test.

From-SVN: r253865
2017-10-18 17:54:18 +00:00
Vladimir Makarov
57d69a633c re PR middle-end/82556 (internal compiler error in curr_insn_transform, at lra-constraints.c:4307)
2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/82556
	* lra-constraints.c (curr_insn_transform): Use non-input operand
	instead of output one for matched reload.

2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/82556
	* gcc.target/i386/pr82556.c: New.

From-SVN: r253862
2017-10-18 16:44:27 +00:00
Bin Cheng
957f0d8faf tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
* tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
	(tree-ssa-loop-ivopts.h): New header file.
	(struct builtin_info): New fields.
	(classify_builtin_1): Compute and record base and offset parts for
	memset builtin partition by calling strip_offset.
	(offset_cmp, fuse_memset_builtins): New functions.
	(finalize_partitions): Fuse adjacent memset partitions by calling
	above function.
	* tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
	Expose the interface.
	* tree-ssa-loop-ivopts.h (strip_offset): New declaration.

	* gcc.dg/tree-ssa/ldist-17.c: Adjust test string.
	* gcc.dg/tree-ssa/ldist-32.c: New test.
	* gcc.dg/tree-ssa/ldist-35.c: New test.
	* gcc.dg/tree-ssa/ldist-36.c: New test.

From-SVN: r253859
2017-10-18 16:04:16 +00:00
Bin Cheng
85aa9ed64b re PR tree-optimization/82574 (wrong code at -O3 on x86_64-linux-gnu)
PR tree-optimization/82574
	* tree-loop-distribution.c (find_single_drs): New parameter.  Check
	that data reference must be executed exactly once per iteration
	against the outermost loop in nest.
	(classify_partition): Update call to above function.

	gcc/testsuite
	* gcc.dg/tree-ssa/pr82574.c: New test.

From-SVN: r253857
2017-10-18 15:56:15 +00:00
Richard Biener
e33507e33c re PR tree-optimization/82591 ([graphite] Compile-time hog w/ -O2 -floop-nest-optimize)
2017-10-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82591
	* graphite.c (graphite_transform_loops): Move code gen message
	printing ...
	* graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
	Here.  Handle scop_to_isl_ast failing.
	(scop_to_isl_ast): Limit the number of ISL operations.

From-SVN: r253856
2017-10-18 14:35:26 +00:00
Richard Biener
30c4440c6a 2017-10-18 Richard Biener <rguenther@suse.de>
* graphite-isl-ast-to-gimple.c
	(translate_isl_ast_to_gimple::set_rename): Simplify.
	(translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
	(graphite_copy_stmts_from_block): ... here.
	(copy_bb_and_scalar_dependences): Simplify.
	(add_parameters_to_ivs_params): Canonicalize.
	(generate_entry_out_of_ssa_copies): Simplify.
	* graphite-sese-to-poly.c (extract_affine_name): Simplify
	by passing in ISL dimension.
	(parameter_index_in_region_1): Rename to ...
	(parameter_index_in_region): ... this.
	(extract_affine): Adjust assert, pass down parameter index.
	(add_param_constraints): Use range-info when available.
	(build_scop_context): Adjust.
	* sese.c (new_sese_info): Adjust.
	(free_sese_info): Likewise.
	* sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
	Remove unused typedefs.
	(struct sese_info_t): Simplify rename_map, remove incomplete_phis.

From-SVN: r253855
2017-10-18 13:34:00 +00:00
Martin Liska
28e2e23607 Fix failing test-case
2017-10-18  Martin Liska  <mliska@suse.cz>

	* gcc.dg/tree-prof/switch-case-2.c: Scan IPA profile dump
	file instead of expand. Reason is that switch statement is
	not yet expanded as decision tree, which also contains a BB
	with count == 2000.

From-SVN: r253854
2017-10-18 12:44:08 +00:00
Martin Liska
368b626f26 Fix -Wimplicit-fallthrough in combine.c
2017-10-18  Martin Liska  <mliska@suse.cz>

	* combine.c (simplify_compare_const): Add gcc_fallthrough.

From-SVN: r253853
2017-10-18 11:23:50 +00:00
Eric Botcazou
c96738e321 misc.c (gnat_tree_size): Move around.
* gcc-interface/misc.c (gnat_tree_size): Move around.

	* gcc-interface/utils.c (max_size): Deal with SSA names.

From-SVN: r253852
2017-10-18 10:41:03 +00:00
Jakub Jelinek
f8049c44b9 re PR lto/82598 (lto debugobj lacks .note.GNU-stack)
PR lto/82598
	* simple-object.c (handle_lto_debug_sections): Copy over also
	.note.GNU-stack section with unchanged name.
	* simple-object-elf.c (SHF_EXECINSTR): Define.
	(simple_object_elf_copy_lto_debug_section): Drop SHF_EXECINSTR bit
	on .note.GNU-stack section.

From-SVN: r253851
2017-10-18 11:20:31 +02:00
Robin Dapp
ac2bb5222b S/390: Do not end groups after fallthru edge.
gcc/ChangeLog:

2017-10-17  Robin Dapp  <rdapp@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
	(s390_sched_init): Do not reset s390_sched_state if we entered the
	current basic block via a fallthru edge and all others are unlikely.

From-SVN: r253850
2017-10-18 09:14:16 +00:00
Robin Dapp
67ba339309 S/390: Handle long-running instructions.
gcc/ChangeLog:

2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>

	* config/s390/s390.c (NUM_SIDES): New variable.
	(LONGRUNNING_THRESHOLD): New variable.
	(LATENCY_FACTOR): New variable.
	(s390_sched_score): Decrease score for long-running instructions on
	wrong side.
	(s390_sched_variable_issue): Perform bookkeeping for long-running
	instructions.

From-SVN: r253849
2017-10-18 09:10:09 +00:00
Paul Thomas
ee077fcb8c re PR fortran/82550 (program using submodules fails to link)
2017-10-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/82550
	* trans_decl.c (gfc_get_symbol_decl): Procedure symbols that
	have the 'used_in_submodule' attribute should be processed by
	'gfc_get_extern_function_decl'.

2017-10-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/82550
	* gfortran.dg/submodule_30.f08 : New test.

From-SVN: r253848
2017-10-18 08:55:27 +00:00
Richard Biener
04612f7f84 graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id): Simplify with removal of the parameter rename map.
2017-10-18  Richard Biener  <rguenther@suse.de>

	* graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
	Simplify with removal of the parameter rename map.
	(set_rename): Likewise.
	(should_copy_to_new_region): Likewise.
	(graphite_copy_stmts_from_block): Likewise.
	(copy_bb_and_scalar_dependences): Remove initialization of
	unused copied_bb_map.
	(copy_def): Remove.
	(copy_internal_parameters): Likewise.
	(graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
	* graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
	Use INTEGRAL_TYPE_P.
	(parameter_index_in_region_1): Rename to ...
	(assign_parameter_index_in_region): ... this.  Assert we have
	a parameter we handle.
	(scan_tree_for_params): Adjust.
	* sese.h (parameter_rename_map_t): Remove.
	(struct sese_info_t): Remove unused parameter_rename_map and
	copied_bb_map members.
	* sese.c (new_sese_info): Adjust.
	(free_sese_info): Likewise.

From-SVN: r253847
2017-10-18 08:30:45 +00:00
Andreas Krebbel
de57059efa S/390: Fix vec-cmp-2 testcase
The functions all call foo and therefore need a stack frame what makes
them subject to shrink wrapping.  Also all the additional instructions
in the function body makes it fragile wrt instruction scheduling.  Just
set a global variable instead to circumvent this.

gcc/testsuite/ChangeLog:

2017-10-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/zvector/vec-cmp-2.c
	(all_eq_double, all_ne_double, all_gt_double)
	(all_lt_double, all_ge_double, all_le_double)
	(any_eq_double, any_ne_double, any_gt_double)
	(any_lt_double, any_ge_double, any_le_double)
	(all_eq_int, all_ne_int, all_gt_int)
	(all_lt_int, all_ge_int, all_le_int)
	(any_eq_int, any_ne_int, any_gt_int)
	(any_lt_int, any_ge_int, any_le_int): Set global variable instead
	of calling foo().  Fix return type.

From-SVN: r253846
2017-10-18 08:21:45 +00:00
Martin Liska
236ac44204 Do not put gimple stmt on an abnormal edge (PR sanitizer/82545).
2017-10-18  Martin Liska  <mliska@suse.cz>

	PR sanitizer/82545
	* asan.c (asan_expand_poison_ifn): Do not put gimple stmt
	on an abnormal edge.
2017-10-18  Martin Liska  <mliska@suse.cz>

	PR sanitizer/82545
	* gcc.dg/asan/pr82545.c: New test.

From-SVN: r253845
2017-10-18 08:14:47 +00:00
Paolo Carlini
1b2944cbd4 re PR c++/69057 ([C++14] constexpr static variable template assertion segmentation fault)
2017-10-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/69057
	* g++.dg/cpp1y/auto-fn45.C: New.

From-SVN: r253844
2017-10-18 07:53:27 +00:00
Paolo Carlini
257792c5e2 re PR c++/68884 (template of value template crashes the compiler)
2017-10-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/68884
	* g++.dg/cpp0x/variadic-crash4.C: New.

From-SVN: r253843
2017-10-18 07:43:06 +00:00
Sebastian Huber
f381d87aa5 Update -ffunction/data-sections documentation
gcc/
	* doc/invoke.texi (ffunction-sections and fdata-sections):
	Update.

From-SVN: r253842
2017-10-18 07:36:38 +00:00
Paolo Carlini
173a960ac9 re PR c++/79474 (Multiple definitions of user-defined conversion operator cause ICE (internal compiler error))
2017-10-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/79474
	* g++.dg/cpp1y/auto-fn44.C: New.

From-SVN: r253841
2017-10-18 07:24:50 +00:00
GCC Administrator
697fb2ae37 Daily bump.
From-SVN: r253840
2017-10-18 00:16:14 +00:00
Eric Botcazou
8119ebd57d tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if the use statement can throw internally.
* tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
	the use statement can throw internally.

From-SVN: r253834
2017-10-17 21:53:34 +00:00
Eric Botcazou
aca308040b * gcc.dg/attr-alloc_size-11.c: UnXFAIL for visium-*-*.
From-SVN: r253831
2017-10-17 20:34:29 +00:00
Eric Botcazou
34311c5ee6 visium.c (visium_select_cc_mode): Return CCmode for any RTX present on the RHS of a SET.
* config/visium/visium.c (visium_select_cc_mode): Return CCmode
	for any RTX present on the RHS of a SET.
	* compare-elim.c (try_eliminate_compare): Restore comment.

From-SVN: r253830
2017-10-17 20:28:33 +00:00
Jakub Jelinek
8e7014b455 langhooks.h (struct lang_hooks): Document that tree_size langhook may be also called on tcc_type nodes.
* langhooks.h (struct lang_hooks): Document that tree_size langhook
	may be also called on tcc_type nodes.
	* langhooks.c (lhd_tree_size): Likewise.

	* gcc-interface/misc.c (gnat_tree_size): New function.
	(LANG_HOOKS_TREE_SIZE): Redefine.

From-SVN: r253829
2017-10-17 22:11:00 +02:00
Paolo Carlini
eaf95345d3 re PR c++/71821 (ICE on invalid C++11 code (incorrect argument for alignas): unexpected expression ‘f<int>’ of kind template_id_expr)
2017-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71821
	* g++.dg/cpp0x/alignas12.C: New.

From-SVN: r253828
2017-10-17 19:49:06 +00:00
David Malcolm
89b6abbb7e Simplify format_warning_at_substring API
The format_warning_at_substring API has a rather clunk way of indicating
the location of the pertinent param (if any): a source_range * is passed
in, which can be NULL.  Doing so requires extracting a range from the
location_t and passing around a pointer to it, or NULL, as needed.

This patch simplifies things by eliminating the source_range * in
favor of a location_t, with UNKNOWN_LOCATION used to signify that
no param location is available.

gcc/c-family/ChangeLog:
	* c-format.c (format_warning_at_char): Pass UNKNOWN_LOCATION
	rather than NULL to format_warning_va.
	(check_format_types): Likewise when calling format_type_warning.
	Remove code to extract source_ranges and source_range * in favor
	of just a location_t.
	(format_type_warning): Convert source_range * param to a
	location_t.

gcc/ChangeLog:
	* gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
	format_warning_at_substring.
	(maybe_warn): Convert source_range * param to a location_t.  Pass
	UNKNOWN_LOCATION rather than NULL to fmtwarn.
	(format_directive): Remove code to extract source_ranges and
	source_range * in favor of just a location_t.
	(parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
	fmtwarn.
	* substring-locations.c (format_warning_va): Convert
	source_range * param to a location_t.
	(format_warning_at_substring): Likewise.
	* substring-locations.h (format_warning_va): Likewise.
	(format_warning_at_substring): Likewise.

From-SVN: r253827
2017-10-17 19:41:01 +00:00
Paolo Carlini
9efb55ac05 re PR c++/71368 ([concepts] ICE on constrained compound requirement)
2017-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71368
	* g++.dg/concepts/pr71368.C: New.

From-SVN: r253826
2017-10-17 19:36:49 +00:00
Martin Liska
8240d00373 Add gcc_checking_assert for sbitmap.c.
From-SVN: r253825
2017-10-17 19:17:36 +00:00
Jan Hubicka
a584b03d5f * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
From-SVN: r253824
2017-10-17 17:37:23 +00:00
Jan Hubicka
cc9fe6bbd7 target.h (enum vect_cost_for_stmt): Add vec_gather_load and vec_scatter_store
* target.h (enum vect_cost_for_stmt): Add vec_gather_load and
	vec_scatter_store
	* tree-vect-stmts.c (record_stmt_cost): Make difference between normal
	and scatter/gather ops.

	* aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
	vec_gather_load and vec_scatter_store.
	* arm/arm.c (arm_builtin_vectorization_cost): Likewise.
	* powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
	* rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
	* s390/s390.c (s390_builtin_vectorization_cost): Likewise.
	* spu/spu.c (spu_builtin_vectorization_cost): Likewise.

From-SVN: r253823
2017-10-17 17:35:54 +00:00
Uros Bizjak
7061821d4a reg-stack.c (compare_for_stack_reg): Add bool argument.
* reg-stack.c (compare_for_stack_reg): Add bool argument.
	Detect FTST instruction and handle its register pops.  Only pop
	second operand if can_pop_second_op is true.
	(subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
	set can_pop_second_op to false in the compare_for_stack_reg call.

	* config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
	output_fp_compare for stack register operands.
	* config/i386/i386.c (output_fp_compare): Do not output SSE compare
	instructions here.  Do not emit stack register pops here.  Assert
	that FCOMPP pops next to top stack register.  Rewrite function.

From-SVN: r253821
2017-10-17 18:35:11 +02:00