Commit Graph

148166 Commits

Author SHA1 Message Date
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
Jonathan Wakely
3625264fb3 Add test accidentally not added in revision r239121
* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
	New test.

From-SVN: r239896
2016-08-31 17:57:09 +01:00
Ian Lance Taylor
fc4eaccf10 runtime: make gsignal stack at least SIGSTKSZ bytes
The default stack size for the gsignal goroutine, 32K, is not enough on
    ia64.  Make sure that the stack size is at least SIGSTKSZ.
    
    Reviewed-on: https://go-review.googlesource.com/28224

From-SVN: r239894
2016-08-31 13:59:03 +00:00
David Malcolm
96f14006f5 selftest.c: avoid explicit "selftest::" qualifiers
gcc/ChangeLog:
	* selftest.c: Move "namespace selftest {" to top of file,
	removing explicit "selftest::" qualifiers throughout.

From-SVN: r239892
2016-08-31 13:22:43 +00:00
Marc Glisse
c6b0037d0e [x86] Don't use builtins for unaligned load/store
2016-08-31  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
	New types.
	(_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
	_mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
	Replace builtin with vector extension.
	* config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
	New types.
	(_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
	_mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
	Replace builtin with vector extension.
	* config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
	(_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
	Replace builtin with vector extension.
	* config/i386/xmmintrin.h (__m128_u): New type.
	(_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
	(_mm_load_ps, _mm_store_ps): Simplify.

gcc/testsuite/
	* gcc.target/i386/pr59539-2.c: Adapt options.
	* gcc.target/i386/avx512f-vmovdqu32-1.c: Relax expected asm.

From-SVN: r239889
2016-08-31 11:56:37 +00:00
Eric Botcazou
c1105fa7e4 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
From-SVN: r239888
2016-08-31 10:09:00 +00:00
Paul Thomas
1a576b1332 re PR testsuite/77418 (SELECT TYPE associating entity can be (de)allocated)
2016-08-31  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/77418
	* gfortran.dg/dtio_5.f90: Remove the non-standard deallocation
	of the associate entity and replace with a pointer to the
	intended item on the stack.

From-SVN: r239881
2016-08-31 07:50:44 +00:00