Commit Graph

148172 Commits

Author SHA1 Message Date
Thomas Koenig
d6598cf719 re PR fortran/71902 (Unneeded temporary on reallocatable character assignment)
2016-09-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/71902
	* frontend-passes.c (realloc_string_callback): Also check for the
	lhs being deferred.  Name temporary variable "realloc_string".

2016-09-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/71902
	* gfortran.dg/dependency_47.f90:  New test.
	* gfortran.dg/dependency_49.f90:  New test.

From-SVN: r239977
2016-09-04 16:17:55 +00:00
John David Anglin
abb62d32a1 inclhack.def (hpux_longjmp): Adjust select regular expression.
* inclhack.def (hpux_longjmp): Adjust select regular expression.
	* fixincl.x: Regenerate.

From-SVN: r239976
2016-09-04 16:17:10 +00:00
Tom de Vries
21234eb5e8 Revert "Replace error_at with assert in build_va_arg"
2016-09-04  Tom de Vries  <tom@codesourcery.com>

	revert:
	2016-08-29  Tom de Vries  <tom@codesourcery.com>

	* c-common.c (build_va_arg): Replace first argument type error
	with assert.

From-SVN: r239975
2016-09-04 09:07:52 +00:00
GCC Administrator
bcfbf31b40 Daily bump.
From-SVN: r239974
2016-09-04 00:16:14 +00:00
Kirill Yukhin
2994b5cca3 ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
gcc/
	* ubsan.c (ubsan_use_new_style_p): Fix check for empty string.

From-SVN: r239971
2016-09-03 10:57:05 +00:00
Jakub Jelinek
b5d506593e re PR c/65467 ([libgomp] sorry, unimplemented: '_Atomic' with OpenMP)
PR c/65467
	* gcc.dg/gomp/_Atomic-4.c: Require vect_simd_clones effective target.

From-SVN: r239970
2016-09-03 11:20:03 +02:00
GCC Administrator
f8d3207d87 Daily bump.
From-SVN: r239969
2016-09-03 00:16:13 +00:00
Kirill Yukhin
7b82667644 avx512f-klogic-2.c: Fix operand calculation order.
gcc/testsuite/
 	* gcc.target/i386/avx512f-klogic-2.c: Fix operand calculation order.

From-SVN: r239966
2016-09-02 20:04:14 +00:00
David Malcolm
717ebe91c9 Add -fdiagnostics-generate-patch
gcc/ChangeLog:
	* common.opt (fdiagnostics-generate-patch): New option.
	* diagnostic.c: Include "edit-context.h".
	(diagnostic_initialize): Initialize context->edit_context_ptr.
	(diagnostic_finish): Delete context->edit_context_ptr.
	(diagnostic_report_diagnostic): Add fix-it hints from the
	diagnostic to context->edit_context_ptr, if any.
	* diagnostic.h (class edit_context): Add forward decl.
	(struct diagnostic_context): Add field "edit_context_ptr".
	* doc/invoke.texi (Diagnostic Message Formatting Options): Add
	-fdiagnostics-generate-patch.
	(-fdiagnostics-generate-patch): New item.
	* toplev.c: Include "edit-context.h".
	(process_options): Set global_dc->edit_context_ptr to a new
	edit_context if the options need one.
	(toplev::main): Handle -fdiagnostics-generate-patch by using
	global_dc->edit_context_ptr.

gcc/testsuite/ChangeLog:
	* gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c: New
	test case.
	* gcc.dg/plugin/plugin.exp (plugin_test_list): Add
	diagnostic-test-show-locus-generate-patch.c to the sources
	for diagnostic_plugin_test_show_locus.c.

From-SVN: r239965
2016-09-02 19:41:17 +00:00
Jakub Jelinek
9dc5773f4b re PR c/65467 ([libgomp] sorry, unimplemented: '_Atomic' with OpenMP)
PR c/65467
	* gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
	map and firstprivate clauses on target construct for _Atomic
	qualified decls.
	(gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
	on target construct for _Atomic qualified decls.
	* omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
	decls.
	* omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
	_Atomic qualified arguments not mentioned in uniform clause.
c/
	* c-parser.c (c_parser_declspecs): Don't sorry about _Atomic if
	flag_openmp.
	(c_parser_omp_variable_list): Use convert_lvalue_to_rvalue
	instead of mark_exp_read on low_bound/length expression.
	(c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_threads,
	c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
	c_parser_omp_clause_priority, c_parser_omp_clause_hint,
	c_parser_omp_clause_num_workers, c_parser_oacc_shape_clause,
	c_parser_oacc_clause_tile, c_parser_omp_clause_schedule,
	c_parser_omp_clause_vector_length, c_parser_omp_clause_num_teams,
	c_parser_omp_clause_thread_limit, c_parser_omp_clause_aligned,
	c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
	c_parser_omp_clause_simdlen, c_parser_omp_clause_device,
	c_parser_omp_clause_dist_schedule): Use convert_lvalue_to_rvalue
	instead of mark_expr_read.
	(c_parser_omp_declare_reduction): Reject _Atomic qualified types.
	* c-objc-common.h (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
	LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): Redefine.
	* c-tree.h (c_omp_clause_copy_ctor): New prototype.
	* c-typeck.c (handle_omp_array_sections_1): Diagnose _Atomic qualified
	array section bases outside of depend clause, for depend clause
	use convert_lvalue_to_rvalue on the base.
	(c_finish_omp_clauses): Reject _Atomic qualified vars in reduction,
	linear, aligned, map, to and from clauses.
	(c_omp_clause_copy_ctor): New function.
c-family/
	* c-omp.c (c_finish_omp_atomic): Reject _Atomic qualified expressions.
	(c_finish_omp_for): Reject _Atomic qualified iterators.
testsuite/
	* gcc.dg/gomp/_Atomic-1.c: New test.
	* gcc.dg/gomp/_Atomic-2.c: New test.
	* gcc.dg/gomp/_Atomic-3.c: New test.
	* gcc.dg/gomp/_Atomic-4.c: New test.
	* gcc.dg/gomp/_Atomic-5.c: New test.

From-SVN: r239964
2016-09-02 20:38:07 +02:00
David Malcolm
c65236d682 Introduce class edit_context
gcc/ChangeLog:
	* Makefile.in (OBJS-libcommon): Add edit-context.o.
	* diagnostic-color.c (color_dict): Add "diff-filename",
	"diff-hunk", "diff-delete", and "diff-insert".
	(parse_gcc_colors): Update default value of GCC_COLORS in comment
	to reflect above changes.
	* doc/invoke.texi (-fdiagnostics-color): Update description of
	default GCC_COLORS, and of the supported capabilities.
	* edit-context.c: New file.
	* edit-context.h: New file.
	* input.c (struct fcache): Add field "missing_trailing_newline".
	(diagnostics_file_cache_forcibly_evict_file): Initialize it to
	true.
	(add_file_to_cache_tab): Likewise.
	(fcache::fcache): Likewise.
	(get_next_line): Update c->missing_trailing_newline.
	(location_missing_trailing_newline): New function.
	* input.h (location_missing_trailing_newline): New decl.
	* selftest-run-tests.c (selftest::run_tests): Call
	edit_context_c_tests.
	* selftest.h (edit_context_c_tests): New decl.

libcpp/ChangeLog:
	* include/line-map.h (rich_location::seen_impossible_fixit_p): New
	accessor.

From-SVN: r239963
2016-09-02 18:00:57 +00:00
Jakub Jelinek
bad9b2889a re PR tree-optimization/77444 (Bogus assignments in cand_value_at)
PR tree-optimization/77444
	* tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
	as steptype, remove redundant initialization.

Co-Authored-By: Richard Biener <rguenther@suse.de>

From-SVN: r239962
2016-09-02 19:12:27 +02:00
Jakub Jelinek
94087e88e0 re PR sanitizer/77396 (address sanitizer crashes if all static global variables are optimized)
PR sanitizer/77396
	* sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
	(sanopt_optimize_walker): Optimize away
	__asan_before_dynamic_init (...) followed by
	__asan_after_dynamic_init () without intervening memory loads/stores.
	* ipa-pure-const.c (special_builtin_state): Handle
	BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
	BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.

	* decl2.c (do_static_initialization_or_destruction): Only
	call asan_dynamic_init_call if INITP is true.

	* g++.dg/asan/pr77396.C: New test.

From-SVN: r239961
2016-09-02 19:11:42 +02:00
Prathamesh Kulkarni
af711c232d cfg.c (free_original_copy_tables): Replace second assignment of bb_copy = NULL by bb_original = NULL.
2016-09-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* cfg.c (free_original_copy_tables): Replace second assignment of
	bb_copy = NULL by bb_original = NULL.

From-SVN: r239960
2016-09-02 17:00:38 +00:00
Jakub Jelinek
afef664724 re PR other/77421 (Bugs found in GCC with the help of PVS-Studio)
PR other/77421
	* config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
	assignment added in r216794.

From-SVN: r239959
2016-09-02 18:18:35 +02:00
David Malcolm
950f6c8519 Improvements to typed_splay_tree
This patch adds foreach, max and min methods to
class typed_splay_tree, along with the start of a selftest
suite.

gcc/ChangeLog:
	* Makefile.in (OBJS): Add typed-splay-tree.o.
	* selftest-run-tests.c (selftest::run_tests): Call
	typed_splay_tree_c_tests.
	* selftest.h (typed_splay_tree_c_tests): New decl.
	* typed-splay-tree.c: New file.
	* typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
	(typed_splay_tree::max): New method.
	(typed_splay_tree::min): New method.
	(typed_splay_tree::foreach): New method.
	(typed_splay_tree::closure): New struct.
	(typed_splay_tree::inner_foreach_fn): New function.

From-SVN: r239958
2016-09-02 15:22:21 +00:00
Maxim Kuvyrkov
5a81036247 Use setrlimit for testing libstdc++ in cross toolchains
* acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
	setrlimit on both native and cross targets.
	* configure: Regenerate.

From-SVN: r239955
2016-09-02 13:42:55 +00:00
Prathamesh Kulkarni
15bbb5cc97 ipa-cp.c (ipcp_store_bits_results): Change option name from -fipa-cp-bit to -fipa-bit-cp.
2016-09-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* ipa-cp.c (ipcp_store_bits_results): Change option name from
	-fipa-cp-bit to -fipa-bit-cp.

From-SVN: r239954
2016-09-02 09:22:07 +00:00
Martin Sebor
05a647564a PR tree-optimization/71831 - __builtin_object_size poor results with no
PR tree-optimization/71831 - __builtin_object_size poor results with no
	optimization

gcc/testsuite/ChangeLog:

	PR tree-optimization/71831
	* gcc.dg/builtin-object-size-16.c: New test.
	* gcc.dg/builtin-object-size-17.c: New test.

gcc/ChangeLog:

	PR tree-optimization/71831
	* tree-object-size.h: Return bool instead of the size and add
	argument for the size.
	* tree-object-size.c (compute_object_offset): Update signature.
	(addr_object_size): Same.
	(compute_builtin_object_size): Return bool instead of the size
	and add argument for the size.  Handle POINTER_PLUS_EXPR when
	optimization is disabled.
	(expr_object_size): Adjust.
	(plus_stmt_object_size): Adjust.
	(pass_object_sizes::execute): Adjust.
	* builtins.c (fold_builtin_object_size): Adjust.
	* doc/extend.texi (Object Size Checking): Update.
	* ubsan.c (instrument_object_size): Adjust.

From-SVN: r239953
2016-09-01 20:14:50 -06:00
GCC Administrator
910f2f3d8a Daily bump.
From-SVN: r239952
2016-09-02 00:16:14 +00:00
Martin Sebor
3d7b83b671 c-ada-spec.c (dump_ada_function_declaration): Increase buffer size to guarantee it fits the output of the formatted function...
gcc/c-family/ChangeLog:

	* c-ada-spec.c (dump_ada_function_declaration): Increase buffer
	size to guarantee it fits the output of the formatted function
	regardless of its arguments.

gcc/cp/ChangeLog:

	* mangle.c: Increase buffer size to guarantee it fits the output
	of the formatted function regardless of its arguments.

gcc/go/ChangeLog:

	* gofrontend/expressions.cc: Increase buffer size to guarantee
	it fits the output of the formatted function regardless of its
	arguments.

gcc/java/ChangeLog:

	* decl.c (give_name_to_locals): Increase buffer size to guarantee
	it fits the output of the formatted function regardless of its
	arguments.
	* mangle_name.c (append_unicode_mangled_name): Same.

gcc/ChangeLog:

	* genmatch.c (parser::parse_expr): Increase buffer size to guarantee
	it fits the output of the formatted function regardless of its
	arguments.
	* gcc/genmodes.c (parser::parse_expr): Same.
	* gimplify.c (gimplify_asm_expr): Same.
	* passes.c (pass_manager::register_one_dump_file): Same.
	* print-tree.c (print_node): Same.

From-SVN: r239949
2016-09-01 16:47:49 -06:00
Segher Boessenkool
3b2475ab31 rs6000: Rename 110 -> VSCR_REGNO
* config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.

From-SVN: r239948
2016-09-02 00:28:29 +02:00
Segher Boessenkool
95bde43a92 rs6000: Rename 109 -> VRSAVE_REGNO
* config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.

From-SVN: r239947
2016-09-02 00:27:20 +02:00
Segher Boessenkool
b65261f65c rs6000: Rename 74 -> CR6_REGNO
* config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
	* config/rs6000/vector.md: Ditto.
	* config/rs6000/vsx.md: Ditto.

From-SVN: r239946
2016-09-02 00:26:05 +02:00
Jerry DeLisle
7e89048d4a re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)
2016-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/77393
	* gfortran.dg/fmt_f0_2.f90: Update tests for available kinds.

From-SVN: r239945
2016-09-01 21:17:42 +00:00
Uros Bizjak
2f196155bc float128-builtin.c, [...]: Use dg-add-options ieee.
* gcc.dg/torture/float128-builtin.c, gcc.dg/torture/float128-floath.c,
	gcc.dg/torture/float128-ieee-nan.c, gcc.dg/torture/float128-tg-2.c,
	gcc.dg/torture/float128-tg.c, gcc.dg/torture/float128x-builtin.c,
	gcc.dg/torture/float128x-floath.c, gcc.dg/torture/float128x-nan.c,
	gcc.dg/torture/float128x-tg-2.c, gcc.dg/torture/float128x-tg.c,
	gcc.dg/torture/float16-builtin.c, gcc.dg/torture/float16-floath.c,
	gcc.dg/torture/float16-nan.c, gcc.dg/torture/float16-tg-2.c,
	gcc.dg/torture/float16-tg.c, gcc.dg/torture/float32-builtin.c,
	gcc.dg/torture/float32-floath.c, gcc.dg/torture/float32-nan.c,
	gcc.dg/torture/float32-tg-2.c, gcc.dg/torture/float32-tg.c,
	gcc.dg/torture/float32x-builtin.c, gcc.dg/torture/float32x-floath.c,
	gcc.dg/torture/float32x-nan.c, gcc.dg/torture/float32x-tg-2.c,
	gcc.dg/torture/float32x-tg.c, gcc.dg/torture/float64-builtin.c,
	gcc.dg/torture/float64-floath.c, gcc.dg/torture/float64-nan.c,
	gcc.dg/torture/float64-tg-2.c, gcc.dg/torture/float64-tg.c,
	gcc.dg/torture/float64x-builtin.c, gcc.dg/torture/float64x-floath.c,
	gcc.dg/torture/float64x-nan.c, gcc.dg/torture/float64x-tg-2.c,
	gcc.dg/torture/float64x-tg.c: Use dg-add-options ieee.

From-SVN: r239944
2016-09-01 18:04:17 +02:00
Eric Botcazou
0a6b05234a ipa-inline-analysis.c (param_change_prob): Get to the base object first in all cases.
* ipa-inline-analysis.c (param_change_prob): Get to the base object
	first in all cases.

From-SVN: r239943
2016-09-01 15:56:13 +00:00
Segher Boessenkool
d87a85c67b rs6000: Use LR_REGNO directly in the save/restore patterns
Various patterns use "register_operand" "l" (or "=l") although those
patterns are only created refering to LR_REGNO directly.  This patch
changes those patterns to use the hard regs as well.


	* config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
	*restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
	*return_and_restore_gpregs_<mode>_r11,
	*return_and_restore_gpregs_<mode>_r12,
	*return_and_restore_gpregs_<mode>_r1,
	*return_and_restore_fpregs_<mode>_r11,
	*return_and_restore_fpregs_<mode>_r12,
	*return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
	directly instead of via the "l" constraint.  Renumber operands.
	Fix whitespace.

From-SVN: r239942
2016-09-01 17:07:54 +02:00
Segher Boessenkool
893fc0a002 rs6000: Use LR_REGNO instead of constant 65
Many places still use 65 instead of the symbolic constant LR_REGNO.  This
fixes them all (I looked for the string "65" only, in config/rs6000/ only,
I didn't read all code :-) )

I left it in *restore_world because Iain will remove it there soon.


	* config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
	save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
	*restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
	* config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
	load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
	*call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
	*call_value_nonlocal_darwin64, reload_macho_picbase,
	reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
	* config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
	* config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
	*save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
	*save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
	*save_fpregs_<mode>_r1): Ditto.
	* config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
	*return_and_restore_gpregs_spe): Ditto.

From-SVN: r239941
2016-09-01 17:04:11 +02:00
Segher Boessenkool
a345b5b026 rs6000: Fix for AIX, for r239866
This should fix r239866 for AIX.  I missed two patterns that refer to LR
as "register_operand" "l" instead of as reg:P LR_REGNO.


	* config/rs6000/rs6000.md
	(define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
	the use of the link register.
	(define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.

From-SVN: r239940
2016-09-01 17:01:02 +02:00
Marek Polacek
295844f687 re PR c/7652 (-Wswitch-break : Warn if a switch case falls through)
PR c/7652
gcc/c-family/
	* c-common.c (resolve_overloaded_builtin): Fix formatting.  Add
	FALLTHRU comments.
gcc/c/
	* c-typeck.c (composite_type): Add FALLTHRU comment.
gcc/gcc/cp/
	* error.c (dump_type): Fix falls through comment.
	(dump_decl): Likewise.
	(dump_expr): Likewise.

From-SVN: r239939
2016-09-01 14:59:50 +00:00
Bill Schmidt
1ca94f3674 re PR target/72827 (gnat bootstrap broken on powerpc64le-linux-gnu)
2016-09-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	    Michael Meissner <meissner@linux.vnet.ibm.com>

	PR target/72827
	* config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
	reg+reg addressing for TImode.
	(rs6000_legitimate_address_p): Only allow register indirect
	addressing for TImode, even without TARGET_QUAD_MEMORY.


Co-Authored-By: Michael Meissner <meissner@linux.vnet.ibm.com>

From-SVN: r239938
2016-09-01 14:43:55 +00:00
Richard Biener
2a99de7b1e re PR middle-end/77436 (Incorrect constant result for summing loop inserted)
2016-09-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/77436
	* tree-chrec.c (tree_fold_binomial): Use widest_int, properly
	check whether the result fits the desired result type.

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

From-SVN: r239937
2016-09-01 13:38:25 +00:00
Nathan Sidwell
bc4ec5430b * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
From-SVN: r239934
2016-09-01 12:07:16 +00:00
Wilco Dijkstra
491ec06036 This patch adds legitimize_address_displacement hook so that stack accesses...
This patch adds legitimize_address_displacement hook so that stack accesses
with large offsets are split into a more efficient sequence.  Unaligned and
TI/TFmode use a 256-byte range, byte and halfword accesses use a 4KB range,
wider accesses use a 16KB range to maximise the available addressing range
and increase opportunities to share the base address.

int f(int x)
{
  int arr[8192];
  arr[4096] = 0;
  arr[6000] = 0;
  arr[7000] = 0;
  arr[8191] = 0;
  return arr[x];
}

Now generates:

  sub   sp, sp, #32768
  add   x1, sp, 16384
  str   wzr, [x1]
  str   wzr, [x1, 7616]
  str   wzr, [x1, 11616]
  str   wzr, [x1, 16380]
  ldr   w0, [sp, w0, sxtw 2]
  add   sp, sp, 32768
  ret

    gcc/
	* config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
	New function.
	(TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.

From-SVN: r239923
2016-09-01 11:34:49 +00:00
Senthil Kumar Selvaraj
f79d87865b Fix more bogus testsuite failures for avr.
gcc/testsuite/

2016-09-01  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

        * gcc.dg/pr64252.c: Require int32plus.
        * gcc.dg/pr66299-1.c: Likewise.
        * gcc.dg/pr66299-2.c: Likewise.
        * gcc.dg/torture/20131115-1.c: Skip for avr.

From-SVN: r239921
2016-09-01 11:02:55 +00:00
Kyrylo Tkachov
b06335f93e [AArch64] Add ANDS pattern for CMP+ZERO_EXTEND
* config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
	for comparisons of integer ZERO_EXTEND against zero.

	* gcc.target/aarch64/ands_3.c: New test.

From-SVN: r239919
2016-09-01 09:03:52 +00:00
Eric Botcazou
3409207a44 i386.c (ix86_option_override_internal): Also disable the STV pass if -mstackrealign is enabled.
* config/i386/i386.c (ix86_option_override_internal): Also disable the
	STV pass if -mstackrealign is enabled.

From-SVN: r239916
2016-09-01 07:55:00 +00:00
Jason Merrill
e5b9932bbd PR c++/57728 - adjust testcase
* g++.dg/cpp0x/explicit12.C: Add -save-temps.

From-SVN: r239913
2016-08-31 21:55:47 -04:00
David Malcolm
089af25cb6 C: Fix missing spaces in 'struct' fix-it hints
In r237714 I added fix-it hints to the C frontend for missing "struct"
keywords e.g.:

spellcheck-typenames.c:69:1: error: unknown type name ‘foo_t’; use
‘struct’ keyword to refer to the type
 foo_t *foo_ptr;
 ^~~~~
 struct 

However when using the (not yet in trunk) option
 -fdiagnostics-generate-patch,
the generated patch is nonsensical:

  -foo_t *foo_ptr;
  +structfoo_t *foo_ptr;

Fix the fix-its by adding a trailing space to each one, giving:

  -foo_t *foo_ptr;
  +struct foo_t *foo_ptr;

gcc/c/ChangeLog:
	* c-parser.c (c_parser_declaration_or_fndef): Add trailing space
	to the insertion fixits for "struct", "union", and "enum".

From-SVN: r239912
2016-09-01 00:50:54 +00:00
GCC Administrator
76e6cb8315 Daily bump.
From-SVN: r239911
2016-09-01 00:16:16 +00:00
Ilya Verbin
212720907a Fix detection of AVX512IFMA in host_detect_local_cpu
gcc/
	* config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
	AVX512IFMA.

From-SVN: r239908
2016-08-31 19:49:35 +00:00
David Malcolm
3d4f9f878d diagnostic-show-locus.c: handle fixits on lines outside the regular ranges
The diagnostic_show_locus implementation determines the set
of line spans that need printing based on the ranges within the
rich_location (in layout::calculate_line_spans).

Currently this doesn't take into account fix-it hints, and hence
we fail to print fix-it hints that are on lines outside of
those ranges.

This patch updates the implementation to take fix-it hints into
account when calculating the pertinent line spans, so that such fix-it
hints do get printed.  It also adds some validation, to ensure that
we don't attempt to print fix-its hints affecting a different source
file.

gcc/ChangeLog:
	* diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
	(layout_range::intersects_line_p): New method.
	(test_range_contains_point_for_single_point): Rename to...
	(test_layout_range_for_single_point): ...this, and add testing
	for layout_range::intersects_line_p.
	(test_range_contains_point_for_single_line): Rename to...
	(test_layout_range_for_single_line): ...this,  and add testing
	for layout_range::intersects_line_p.
	(test_range_contains_point_for_multiple_lines): Rename to...
	(test_layout_range_for_multiple_lines): ...this,  and add testing
	for layout_range::intersects_line_p.
	(layout::layout): Populate m_fixit_hints.
	(layout::get_expanded_location): Handle the case of a line-span
	for a fix-it hint.
	(layout::validate_fixit_hint_p): New method.
	(get_line_span_for_fixit_hint): New function.
	(layout::calculate_line_spans): Add spans for fixit-hints.
	(layout::should_print_annotation_line_p): New method.
	(layout::print_any_fixits): Drop param "richloc", instead using
	validated fixits in m_fixit_hints.  Add "const" to hint pointers.
	(diagnostic_show_locus): Avoid printing blank annotation lines.
	(selftest::test_diagnostic_context::test_diagnostic_context):
	Initialize show_column and start_span.
	(selftest::test_diagnostic_context::start_span_cb): New static
	function.
	(selftest::test_diagnostic_show_locus_fixit_lines): New function.
	(selftest::diagnostic_show_locus_c_tests): Update for function
	renamings.  Call test_diagnostic_show_locus_fixit_lines.

libcpp/ChangeLog:
	* include/line-map.h (class fixit_remove): Remove stray decl.
	(fixit_hint::affects_line_p): Make const.
	(fixit_insert::affects_line_p): Likewise.
	(fixit_replace::affects_line_p): Likewise.
	* line-map.c (fixit_insert::affects_line_p): Likewise.
	(fixit_replace::affects_line_p): Likewise.

From-SVN: r239906
2016-08-31 18:54:55 +00:00
Jakub Jelinek
d12a0b5aab re PR tree-optimization/77352 (ICE: verify_ssa failed)
PR fortran/77352
	* trans-openmp.c (gfc_trans_omp_parallel_workshare): Always add a
	BIND_EXPR with BLOCK around what gfc_trans_omp_workshare returns.

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

From-SVN: r239904
2016-08-31 20:42:55 +02:00
Jakub Jelinek
f25f40be27 re PR fortran/77374 (ICE in resolve_omp_atomic, at fortran/openmp.c:3949)
PR fortran/77374
	* parse.c (parse_omp_oacc_atomic): Copy over cp->ext.omp_atomic
	to cp->block->ext.omp_atomic.
	* resolve.c (gfc_resolve_blocks): Assert block with one or two
	EXEC_ASSIGNs for EXEC_*_ATOMIC.
	* openmp.c (resolve_omp_atomic): Don't assert one or two
	EXEC_ASSIGNs, instead return quietly for EXEC_NOPs and otherwise
	error unexpected statements.

	* gfortran.dg/gomp/pr77374.f08: New test.

From-SVN: r239903
2016-08-31 20:42:08 +02:00
Marc Glisse
9ff6fb6ede match.pd: Revert a * (1 << b) relaxation.
2016-08-31  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/73714
gcc/
	* match.pd (a * (1 << b)): Revert change from 2016-05-23.
gcc/testsuite/
	* gcc.dg/tree-ssa/pr73714.c: New test.

From-SVN: r239902
2016-08-31 18:22:58 +00:00
Jerry DeLisle
8e95a67408 re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)
2016-08-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/77393
	* gfortran.dg/fmt_f0_2.f90: New test.

From-SVN: r239901
2016-08-31 17:54:32 +00:00
Jerry DeLisle
d775696046 re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)
2016-08-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/77393
	* io/write.c (kind_from_size): New function to calculate required buffer
	size based on kind type. (select_buffer, select_string): Use new
	function. (write_float_0, write_real, write_real_g0, write_complex):
	Adjust calls to pass parameters needed by new function.

From-SVN: r239900
2016-08-31 17:45:26 +00:00
Jonathan Wakely
7663cae227 Constrain std::shared_ptr assignment and resetting
* include/bits/shared_ptr.h (_Assignable): New alias template.
	(shared_ptr::operator=(const shared_ptr<_Tp1>&))
	(shared_ptr::operator=(shared_ptr<_Tp1>&&))
	(shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
	_Assignable.
	* include/bits/shared_ptr_base.h (_Assignable): New alias template.
	(__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
	(__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
	(__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
	_Assignable.
	(__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
	(__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
	_Convertible.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
	match on any line.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
	* testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
	expected errors. Remove unnecessary code.
	* testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.

From-SVN: r239898
2016-08-31 17:57:20 +01:00
Jonathan Wakely
e46d22a821 Move comparison object in map/set move assignment
* include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
	comparison object.
	* testsuite/23_containers/set/move_comparison.cc: New test.

From-SVN: r239897
2016-08-31 17:57:14 +01:00