Commit Graph

148115 Commits

Author SHA1 Message Date
Steven G. Kargl 602f77a672 re PR fortran/77380 (ICE in gfc_check_dependency, at fortran/dependency.c:1255)
2016-08-27  Steven G. Kargl <kargl@gcc.gnu.org>

	PR fortran/77380
	* dependency.c (gfc_check_dependency): Do not assert with
	-fcoarray=lib.

2016-08-27  Steven G. Kargl <kargl@gcc.gnu.org>

	PR fortran/77380
	* gfortran.dg/pr77380.f90: New test.

From-SVN: r239796
2016-08-27 15:45:35 +00:00
Steven G. Kargl 741b52b54f re PR fortran/77372 (ICE in simplify_ieee_selected_real_kind, at fortran/simplify.c:7049)
2016-08-27  Steven G. Kargl <kargl@gcc.gnu.org>

	PR fortran/77372
	simplify.c (simplify_ieee_selected_real_kind): Check for NULL pointers.

2016-08-27  Steven G. Kargl <kargl@gcc.gnu.org>

	PR fortran/77372
	gfortran.dg/pr77372.f90: New test.

From-SVN: r239795
2016-08-27 15:38:55 +00:00
Tim Shen 4aebb4e4a6 re PR libstdc++/77356 (regex error for a ECMAScript syntax string)
PR libstdc++/77356
	* include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
	_M_expression_term): Modify to support dash literal.
	* include/bits/regex_scanner.h: Add dash as a token type to make
	a different from the mandated dash literal by escaping.
	* include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
	token in bracket expression parsing.
	* testsuite/28_regex/regression.cc: Add new testcases.

From-SVN: r239794
2016-08-27 02:03:23 +00:00
GCC Administrator d8921e81e9 Daily bump.
From-SVN: r239793
2016-08-27 00:16:16 +00:00
David Edelsohn f763d9647a re PR target/77349 (AIX DWARF debugging offset in 64 bit mode)
PR target/77349
* config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.

From-SVN: r239790
2016-08-26 19:51:27 -04:00
David Malcolm ee90851679 Add validation and consolidation of fix-it hints
The first aspect of this patch is to add some checking of fix-it hints.
The idea is to put this checking within the rich_location machinery,
rather than requiring every diagnostic to implement it for itself.

The fixits within a rich_location are "atomic": all must be valid for
any to be applicable.

We reject any fixits involving locations above
LINE_MAP_MAX_LOCATION_WITH_COLS.

There's no guarantee that it's sane to modify a macro, so we reject
any fix-its that touch them.

For example, note the attempt to provide a fix-it for the definition
of the macro FIELD:

spellcheck-fields-2.c: In function ‘test_macro’:
spellcheck-fields-2.c:26:15: error: ‘union u’ has no member named ‘colour’; did you mean ‘color’?
 #define FIELD colour
               ^
               color
spellcheck-fields-2.c:27:15: note: in expansion of macro ‘FIELD’
   return ptr->FIELD;
               ^~~~~

After this patch, the fixit is not displayed:

spellcheck-fields-2.c: In function ‘test_macro’:
spellcheck-fields-2.c:26:15: error: ‘union u’ has no member named ‘colour’; did you mean ‘color’?
 #define FIELD colour
               ^
spellcheck-fields-2.c:27:15: note: in expansion of macro ‘FIELD’
   return ptr->FIELD;
               ^~~~~

We might want some way for a diagnostic to opt-in to fix-its that
affect macros, but for now it's simplest to reject them.

The other aspect of this patch is fix-it consolidation: in some cases
neighboring fix-its can be merged.  For example, in a diagnostic to
modernize old-style struct initializers from:

 struct s example = {
- foo: 1,
+ .foo = 1,
 };

one approach would be to replace the "foo" with ".foo" and the ":"
with " =".  This would give two "replace" fix-its:

  foo: 1,
  --- FIXIT 1
  .foo
     - FIXIT 2
     =

This patch allows them to be consolidated into a single "replace" fix-it:

  foo: 1,
  ----
  .foo =

gcc/ChangeLog:
	* diagnostic-show-locus.c
	(selftest::test_fixit_consolidation): New function.
	(selftest::diagnostic_show_locus_c_tests): Call it.
	* gcc-rich-location.h (gcc_rich_location): Eliminate unused
	constructor based on source_range.

gcc/testsuite/ChangeLog:
	* gcc.dg/spellcheck-fields-2.c (test): Move
	dg-begin/end-multiline-output within function body.
	(test_macro): New function.

libcpp/ChangeLog:
	* include/line-map.h (rich_location): Eliminate unimplemented
	constructor based on source_range.
	(rich_location::get_last_fixit_hint): New method.
	(rich_location::reject_impossible_fixit): New method.
	(rich_location): Add fields m_line_table and
	m_seen_impossible_fixit.
	(fixit_hint::maybe_append_replace): New pure virtual function.
	(fixit_insert::maybe_append_replace): New function.
	(fixit_replace::maybe_append_replace): New function.
	* line-map.c (rich_location::rich_location): Initialize
	m_line_table and m_seen_impossible_fixit.
	(rich_location::add_fixit_insert): Call
	reject_impossible_fixit and bail out if true.
	(column_before_p): New function.
	(rich_location::add_fixit_replace): Call reject_impossible_fixit
	and bail out if true.  Attempt to consolidate with neighboring
	fixits.
	(rich_location::get_last_fixit_hint): New method.
	(rich_location::reject_impossible_fixit): New method.
	(fixit_insert::maybe_append_replace): New method.
	(fixit_replace::maybe_append_replace): New method.

From-SVN: r239789
2016-08-26 21:25:41 +00:00
David Malcolm d41e76cf75 Tweak to colors of fix-it hints
Previous, fix-it hints were printed using the color of the severity
of the diagnostic (magenta for warnings, red for errors, cyan for
notes).

This patch updates fix-it hints so that replacement text is printed in
green, to better distinguish the suggested improvement from
the current code.  For example:

spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'?
   return ptr->colour;  <<< RED
               ^~~~~~   <<< RED
               color    <<< GREEN

It makes sense for the underlinings that indicate deletions to
be printed in red, so the patch changes that also.  For example:

diagnostic-test-show-locus-color.c:179:9: warning: example of a removal hint
   int a;;  <<< MAGENTA
         ^  <<< MAGENTA
         -  <<< RED

gcc/ChangeLog:
	* diagnostic-color.c (color_dict): Add "fixit-insert" and
	"fixit-delete".
	(parse_gcc_colors): Update description of default GCC_COLORS.
	* diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
	(colorizer::set_fixit_insert): New method.
	(colorizer::set_fixit_delete): New method.
	(colorizer::get_color_by_name): New method.
	(colorizer::STATE_FIXIT_INSERT): New constant.
	(colorizer::STATE_FIXIT_DELETE): New constant.
	(class colorizer): Drop "_cs" suffix from fields.  Delete "_ce"
	fields in favor of new field "m_stop_color".  Add fields
	"m_fixit_insert" and "m_fixit_delete".
	(colorizer::colorizer): Update for above changes.  Replace
	colorize_start calls with calls to get_color_by_name.
	(colorizer::begin_state): Handle STATE_FIXIT_INSERT and
	STATE_FIXIT_DELETE.  Update for field renamings.
	(colorizer::finish_state): Simplify by using m_stop_color,
	rather than multiple identical "*_ce" fields.
	(colorizer::get_color_by_name): New method.
	(layout::print_any_fixits): Print insertions and replacements
	using the "fixit-insert" color, and deletions using the
	"fixit-delete" color.
	* doc/invoke.texi (-fdiagnostics-color): Update description of
	default GCC_COLORS, and of the supported capabilities.

gcc/testsuite/ChangeLog:
	* gcc.dg/plugin/diagnostic-test-show-locus-color.c
	(test_fixit_insert): Update expected output.
	(test_fixit_remove): Likewise.
	(test_fixit_replace): Likewise.

From-SVN: r239787
2016-08-26 17:59:08 +00:00
Rainer Orth 524a4c966c Fix gcc.dg/ipa/propbits-2.c
* gcc.dg/ipa/propbits-2.c: Add -fdump-tree-optimized to dg-options.
	Fix typo.

From-SVN: r239786
2016-08-26 17:32:05 +00:00
Max Filippov 7695d1e3e2 xtensa: report stack usage
This enables options -fstack-usage and -Wstack-usage.

2016-08-26  Max Filippov  <jcmvbkbc@gmail.com>
gcc/
	* config/xtensa/xtensa.c (xtensa_expand_prologue): Update
	current_function_static_stack_size variable with the static
	stack frame size of the current function when
	flag_stack_usage_info is enabled.

From-SVN: r239785
2016-08-26 17:23:37 +00:00
Jason Merrill d0b0fbd9fc Avoid calling a trivial default constructor.
* class.c (default_ctor_p): New.
	(in_class_defaulted_default_constructor): Use it.
	(type_has_non_user_provided_default_constructor): Use it.
	* call.c (build_over_call): Handle trivial default constructor.
	* cp-tree.h: Declare default_ctor_p.

From-SVN: r239783
2016-08-26 11:10:57 -04:00
Jason Merrill 9729a5d524 PR c++/57728 - explicit instantiation and defaulted functions
* pt.c (do_type_instantiation): Don't mess with non-user-provided
	member functions.

From-SVN: r239782
2016-08-26 11:10:51 -04:00
Jonathan Wakely 10491e4c04 libstdc++/51960 move-construction for raw_storage_iterator
PR libstdc++/51960
	* doc/xml/manual/intro.xml: Document DR 2127 change.
	* doc/html/*: Regenerate.
	* include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
	(operator++(), operator++(int)): Use injected class name.
	* testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.

From-SVN: r239781
2016-08-26 14:11:29 +01:00
Nathan Sidwell bdc30f8f2f ipa-inline-analysis.c (inline_write_summary): Remove unnecessary assignment inside if condition.
* ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
	assignment inside if condition.

From-SVN: r239779
2016-08-26 13:03:32 +00:00
Richard Biener ebfa15ab65 re PR tree-optimization/69047 (memcpy is not as optimized as union is)
2016-08-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69047
	* tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
	extracts similar to what FRE does.
	(non_rewritable_mem_ref_base): Likewise.

	* gcc.dg/pr69047.c: New testcase.

From-SVN: r239778
2016-08-26 12:33:43 +00:00
Jonathan Wakely 52066eae5d Use effective-target instead of -std options
* testsuite/*: Use { target c++11 } or { target c++14 } instead of
	using -std in dg-options.

From-SVN: r239777
2016-08-26 12:41:37 +01:00
Jonathan Wakely e8223484b3 Restore dg-interpreter-batch-mode for libstdc++ tests
2016-08-26  Jonathan Wakely  <jwakely@redhat.com>
	    Pedro Alves  <palves@redhat.com>

	* testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
	and restore dg-interpreter-batch-mode.
	* testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
	gdb-dg-runtest instead of dg-runtest.
	* testsuite/libstdc++-xmethods/xmethods.exp: Likewise.

Co-Authored-By: Pedro Alves <palves@redhat.com>

From-SVN: r239776
2016-08-26 12:35:58 +01:00
Joseph Myers 21184026d5 Always support float128 on x86.
In <https://gcc.gnu.org/ml/gcc-bugs/2016-08/msg03233.html>, Nick
reported i386-elf and ia64-elf failing to build because of
float128_type_node being NULL, but being used by the back end for
__float128.

The global float128_type_node is only available conditionally, if
target hooks indicate TFmode is not only available as a scalar mode
and of the right format, but also supported in libgcc.  The back-end
support, however, expects the type always to be available for
__float128 even if the libgcc support is missing.

Although a target-specific node could be restored in the case where
libgcc support is missing, it seems better to address the missing
libgcc support.  Thus, this patch enables TFmode soft-fp in libgcc
globally for all x86 targets - the only special cases needed being for
targets that use soft-fp for SFmode and DFmode, one of which already
had the support for TFmode as well (so I based the i[34567]86-*-rtems*
configuration on that present for i[34567]86-*-elfiamcu).  The i386
implementation of TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P is then
removed as no longer needed.

I can provide such a patch for ia64 if useful, but am not in a
position to test it (and while I'm reasonably confident that enabling
this support would be right for ia64-elf and ia64-freebsd, I've no
real idea if enabling libgcc support for TFmode, with or without also
enabling it for XFmode, would be safe for ia64-vms).

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc:
	* config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
	(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
	* config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
	* config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
	* config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
	Likewise.
	* config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
	* config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
	* config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
	* config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
	* config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.

libgcc:
	* config.host (i[34567]86-*-* | x86_64-*-*): Enable TFmode soft-fp
	where not already enabled.

From-SVN: r239775
2016-08-26 12:13:42 +01:00
Richard Biener 4d1d8d6af3 mangle.c (java_mangle_decl): Re-sync with lhd_set_decl_assembler_name.
2016-08-26  Richard Biener  <rguenther@suse.de>

	java/
	* mangle.c (java_mangle_decl): Re-sync with lhd_set_decl_assembler_name.

From-SVN: r239774
2016-08-26 10:59:50 +00:00
Jonathan Wakely 86bbf15b6b Add new std::basic_string constructor (LWG 2583)
* config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
	precise patterns for basic_string constructors.
	(GLIBCXX_3.4.23): Export new constructors.
	* doc/xml/manual/intro.xml: Document LWG 2583 status.
	* doc/html/*: Regenerate.
	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
	(basic_string(const basic_string&, size_type, const Alloc&)): Add
	new constructor for LWG 2583.
	(basic_string(const basic_string&, size_type, size_type)): Remove
	default argument.
	[!_GLIBCXX_USE_CXX11_ABI]: Likewise.
	* include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
	* testsuite/21_strings/basic_string/cons/char/8.cc: New test.
	* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.

From-SVN: r239773
2016-08-26 11:41:37 +01:00
Kyrylo Tkachov 83c7402aa5 [ARM] PR target/70473: Reduce size of Cortex-A8 automaton
PR target/70473
	* config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
	reservation duration to 15 cycles.
	(cortex_a8_vfp_macs): Likewise.
	(cortex_a8_vfp_macd): Likewise.
	(cortex_a8_vfp_divs): Likewise.
	(cortex_a8_vfp_divd): Likewise.

From-SVN: r239772
2016-08-26 10:23:20 +00:00
Kyrylo Tkachov 5791f55d02 [ARM] Refactor MOVW/MOVT fusion logic to allow extension
* config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
	(aarch_macro_fusion_pair_p): Use above to avoid early return.

From-SVN: r239771
2016-08-26 10:22:08 +00:00
Prathamesh Kulkarni 209ca542ca Patch for performing interprocedural bitwise constant propagation.
2016-08-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
	    Martin Jambhor  <mjambor@suse.cz>

	* common.opt: New option -fipa-bit-cp.
	* doc/invoke.texi: Document -fipa-bit-cp.
	* opts.c (default_options_table): Add entry for -fipa-bit-cp.
	(enable_fdo_optimizations): Check for flag_ipa_bit_cp.
	* tree-ssa-ccp.h: New header file.
	* tree-ssa-ccp.c: Include tree-ssa-ccp.h
	(bit_value_binop_1): Change to bit_value_binop_1 and export it.
	Replace all occurences of tree parameter by two new params: signop, int.
	(bit_value_unop_1): Change to bit_value_unop and export it.
	Replace all occurences of tree parameter by two new params: signop,
	int.
	(bit_value_binop): Change call from bit_value_binop_1 to
	bit_value_binop.
	(bit_value_assume_aligned): Likewise.
	(bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
	(do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
	to ccp_finalize.
	(ccp_finalize): Skip processing if val->mask == 0.
	* ipa-cp.c: Include tree-ssa-ccp.h
	(ipcp_bits_lattice): New class.
	(ipcp_param_lattice (bits_lattice): New member.
	(print_all_lattices): Call ipcp_bits_lattice::print.
	(set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom. 
	(initialize_node_lattices): Likewise.
	(propagate_bits_accross_jump_function): New function.
	(propagate_constants_accross_call): Call
	propagate_bits_accross_jump_function.
	(ipcp_propagate_stage): Store parameter types when in_lto_p is true.
	(ipcp_store_bits_results): New function.
	(ipcp_driver): Call ipcp_store_bits_results.
	* ipa-prop.h (ipa_bits): New struct.
	(ipa_jump_func): Add new member bits of type ipa_bits.
	(ipa_param_descriptor): Change decl to decl_or_type.
	(ipa_get_param): Change decl to decl_or_type and assert on
	PARM_DECL.
	(ipa_get_type): New function.
	(ipcp_transformation_summary): New member bits.
	* ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
	(ipa_populate_param_decls): Likewise.
	(ipa_dump_param): Likewise.
	(ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
	function.
	(ipa_set_jf_unknown): Set ipa_bits::known to false.
	(ipa_compute_jump_functions_for_edge): Compute jump function for bits
	propagation.
	(ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
	(ipa_write_jump_function): Add streaming for ipa_bits.
	(ipa_read_jump_function): Add support for reading streamed ipa_bits.
	(write_ipcp_transformation_info): Add streaming for ipa_bits
	summary for ltrans.
	(read_ipcp_transfomration_info): Add support for reading streamed ipa_bits.
	(ipcp_update_bits): New function.
	(ipcp_transform_function): Call ipcp_update_bits.

testsuite/
	* gcc.dg/ipa/propbits-1.c: New test-case.
	* gcc.dg/ipa/propbits-2.c: Likewise.
	* gcc.dg/ipa/propbits-3.c: Likewise.

Co-Authored-By: Martin Jambor <mjambor@suse.cz>

From-SVN: r239769
2016-08-26 08:05:39 +00:00
Joseph Myers f3db1aacf8 Update .po files.
* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
	ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
	zh_TW.po: Update.

From-SVN: r239767
2016-08-26 02:05:13 +01:00
GCC Administrator 91482f755b Daily bump.
From-SVN: r239766
2016-08-26 00:16:17 +00:00
Steven G. Kargl e5cf162909 re PR fortran/77351 (ICE in remove_trim, at frontend-passes.c:1145)
2016-08-25  Steven g. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77351
	* frontend-passes.c (remove_trim,combine_array_constructor): Check for
	NULL pointer.

2016-08-25  Steven g. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77351
	* gfortran.dg/pr77351.f90: New test.

From-SVN: r239763
2016-08-25 19:35:46 +00:00
Szabolcs Nagy 384043e89e [mips] Add support for mips*r6-*-musl
gcc/
	* config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
	(MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.

From-SVN: r239760
2016-08-25 14:13:02 +00:00
Szabolcs Nagy 726f49c3d9 [mips] Fix linux header use in libgcc
libgcc/
	* config/mips/linux-unwind.h: Use sys/syscall.h.

From-SVN: r239759
2016-08-25 14:08:27 +00:00
Marek Polacek ebef225f4d c-common.c (warn_logical_not_parentheses): Print fixit hints.
* c-common.c (warn_logical_not_parentheses): Print fixit hints.
	* c-common.h (warn_logical_not_parentheses): Update declaration.

	* c-typeck.c (parser_build_binary_op): Pass LHS to
	warn_logical_not_parentheses.

	* parser.c (cp_parser_binary_expression): Pass LHS to
	warn_logical_not_parentheses.

	* c-c++-common/Wlogical-not-parentheses-2.c: New test.

Co-Authored-By: David Malcolm <dmalcolm@redhat.com>

From-SVN: r239756
2016-08-25 12:48:34 +00:00
David Edelsohn 30df8b9f1e * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
From-SVN: r239755
2016-08-25 08:07:10 -04:00
Richard Biener 45fea2b206 dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes): Only add locations in late dwarf.
2016-08-25  Richard Biener  <rguenther@suse.de>

	* dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
	Only add locations in late dwarf.
	(gen_scheduled_generic_parms_dies): Do not set early dwarf here.
	(dwarf2out_early_finish): But do it here.

From-SVN: r239753
2016-08-25 09:25:31 +00:00
Marek Polacek fe377a48b4 re PR c/77323 (Bad "defaults to 'int'" warning for unsupported types)
PR c/77323
	* c-decl.c (declspecs_add_type): Set typespec_word even when __intN
	or _FloatN or _FloatNx is not supported.
	(finish_declspecs): Set type to integer_type_node when _FloatN or
	_FloatNx is not supported.

	* gcc.dg/pr77323.c: New test.

From-SVN: r239752
2016-08-25 08:22:56 +00:00
GCC Administrator e627efefd8 Daily bump.
From-SVN: r239751
2016-08-25 00:16:17 +00:00
Paul Thomas 88b8971f9c re PR fortran/77358 ([F08] deferred-length character function returns zero-length string)
2016-08-24  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/77358
	* resolve.c (resolve_fl_procedure): Use the correct gfc_charlen
	for deferred character length module procedures.

2016-08-24  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/77358
	* gfortran.dg/submodule_17.f08: New test.

From-SVN: r239740
2016-08-24 19:33:14 +00:00
Michael Collison c8cd469647 arm-modes.def: Add new condition code mode CC_V to represent the overflow bit.
2016-08-24  Michael Collison <michael.collison@linaro.org>
	    Michael Collison <michael.collison@arm.com>

	* config/arm/arm-modes.def: Add new condition code mode CC_V
	to represent the overflow bit.
	* config/arm/arm.c (maybe_get_arm_condition_code):
	Add support for CC_Vmode.
	(arm_gen_unlikely_cbranch): New function to generate common
	rtl conditional branches for overflow patterns.
	* config/arm/arm-protos.h: Add prototype for
	arm_gen_unlikely_cbranch.
	* config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
	addsi3_compareV_upper): New patterns to support signed
	builtin overflow add operations.
	(uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
	New patterns to support unsigned builtin add overflow operations.
	(subv<mode>4, sub<mode>3_compare1): New patterns to support signed
	builtin overflow subtract operations,
	(usubv<mode>4): New patterns to support unsigned builtin subtract
	overflow operations.
	(negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
	to support builtin overflow negate operations.
	* gcc.target/arm/builtin_saddl.c: New testcase.
	* gcc.target/arm/builtin_saddll.c: New testcase.
	* gcc.target/arm/builtin_uaddl.c: New testcase.
	* gcc.target/arm/builtin_uaddll.c: New testcase.
	* gcc.target/arm/builtin_ssubl.c: New testcase.
	* gcc.target/arm/builtin_ssubll.c: New testcase.
	* gcc.target/arm/builtin_usubl.c: New testcase.
	* gcc.target/arm/builtin_usubll.c: New testcase.


Co-Authored-By: Michael Collison <michael.collison@arm.com>

From-SVN: r239739
2016-08-24 19:31:20 +00:00
Uros Bizjak d5b5d21260 re PR target/77270 (Flag -mprftchw is shared with 3dnow for -march=k8)
PR target/77270
	* gcc.dg/tree-ssa/loop-28.c: Also compile on 32bit x86 targets.
	(dg-options): Use -march=amdfam10 instead of -march=athlon.
	* gcc.dg/tree-ssa/update-unroll-1.c: Ditto.
	* gcc.dg/tree-ssa/prefetch-3.c: Ditto.
	* gcc.dg/tree-ssa/prefetch-4.c: Ditto.
	* gcc.dg/tree-ssa/prefetch-5.c: Ditto.
	* gcc.dg/tree-ssa/prefetch-6.c: Ditto.  Do not require sse2
	effective target.  Remove scan-assembler-times directives.
	* gcc.dg/tree-ssa/prefetch-7.c: Ditto.
	* gcc.dg/tree-ssa/prefetch-8.c: Ditto.
	* gcc.dg/tree-ssa/prefetch-9.c: Ditto.

From-SVN: r239737
2016-08-24 16:59:43 +02:00
Andreas Krebbel b9553e20ad Revert "Drop excess size used for run time allocated stack variables."
This patch caused a bootstrap failure on AIX.

2016-08-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Revert
	2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* explow.c (get_dynamic_stack_size): Take known alignment of stack
	pointer + STACK_DYNAMIC_OFFSET into account when calculating the
	size needed.

From-SVN: r239735
2016-08-24 10:56:37 +00:00
Thomas Preud'homme 0630b8ec3d fragments.texi (MULTILIB_REUSE): Mention that only options in MULTILIB_OPTIONS should be used.
2016-08-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
    MULTILIB_OPTIONS should be used.  Small wording fixes.
    * genmultilib: Memorize set of all option combinations in
    combination_space.  Detect if RHS of MULTILIB_REUSE uses an option not
    found in MULTILIB_OPTIONS by checking if option set is listed in
    combination_space.  Output new and existing error message to stderr.

From-SVN: r239734
2016-08-24 09:51:35 +00:00
Thomas Preud'homme 0ba81bbe65 t-aprofile (MULTILIB_MATCHES): Add mapping for -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
2016-08-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
    -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
    Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
    (MULTILIB_REUSE): Remove reuse rules for option set including
    -mfpu=fp-armv8 and -mfpu=vfpv4

From-SVN: r239733
2016-08-24 09:51:26 +00:00
Senthil Kumar Selvaraj d118868932 Fix bogus testsuite failures for avr.
gcc/testsuite/

2016-08-24  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

        * gcc.c-torture/execute/pr71083.c: Use UINT32_TYPE instead
        of unsigned int.
        * gcc.dg/zero_sign_ext_test.c: Require int32plus.

From-SVN: r239732
2016-08-24 08:36:56 +00:00
Aditya Kumar 9a38acdfdc Remove trailing whitespace in C++ headers
2016-08-24  Aditya Kumar  <hiraditya@msn.com>

	* include/bits/algorithmfwd.h: Remove trailing whitespace.
	* include/bits/shared_ptr_base.h: Likewise.

From-SVN: r239731
2016-08-24 09:03:01 +01:00
Robert Suchanek 0b6b8f85a3 re PR testsuite/77317 (x86_64 --target_board=''unix/ unix/-m32'' parallel testrun gives inconsistent results in gcc.dg/vect)
Fix PR testsuite/77317

gcc/testsuite/
	* lib/target-supports.exp
	(check_effective_target_vect_aligned_arrays): Don't cache the result.
	(check_effective_target_vect_natural_alignment): Ditto.
	(check_effective_target_vector_alignment_reachable): Ditto.
	(check_effective_target_vector_alignment_reachable_for_64bit): Ditto.

From-SVN: r239730
2016-08-24 07:53:07 +00:00
Sebastian Huber a4892ab4f8 [RTEMS] Add vfp multilib for ARM
gcc/

	* config/arm/t-rtems: Add vfp multilib.

From-SVN: r239727
2016-08-24 06:05:04 +00:00
GCC Administrator f5e9814bb4 Daily bump.
From-SVN: r239726
2016-08-24 00:16:22 +00:00
Ian Lance Taylor 587b7f7aa1 s390.c (s390_asm_file_start): Call default_file_start.
gcc/:
	* config/s390/s390.c (s390_asm_file_start): Call
	default_file_start.
gcc/testsuite/:
	* gcc.target/s390/nolrl-1.c: Don't match the file name.

From-SVN: r239713
2016-08-23 20:43:17 +00:00
Michael Meissner 6019c0fc62 rs6000.c (rs6000_expand_vector_init): Set initialization of all 0's to the 0 constant, instead of directly generating XOR.
[gcc]
2016-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
	initialization of all 0's to the 0 constant, instead of directly
	generating XOR.  Add support for V4SImode vector initialization on
	64-bit systems with direct move, and rework the ISA 3.0 V4SImode
	initialization.  Change variables used in V4SFmode vector
	intialization.  For V4SFmode vector splat on ISA 3.0, make sure
	any memory addresses are in index form.  Add support for using
	VSPLTH/VSPLTB to initialize vector short and vector char vectors
	with all of the same element.
	(regno_or_subregno): New helper function to return a register
	number for either REG or SUBREG.
	(rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
	Use regno_or_subregno where possible.
	(rs6000_split_v4si_init_di_reg): New helper function to build up a
	DImode value from two SImode values in order to generate V4SImode
	vector initialization on 64-bit systems with direct move.
	(rs6000_split_v4si_init): Split up the insns for a V4SImode vector
	initialization.
	(rtx_is_swappable_p): V4SImode vector initialization insn is not
	swappable.
	* config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
	declaration.
	* config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
	attributes to initialize V8HImode and V16QImode vectors with the
	same element.
	(VSX_SPLAT_COUNT): Likewise.
	(VSX_SPLAT_SUFFIX): Likewise.
	(UNSPEC_VSX_VEC_INIT): New unspec.
	(vsx_concat_v2sf): Eliminate using 'preferred' register classes.
	Allow SFmode values to come from Altivec registers.
	(vsx_init_v4si): New insn/split for V4SImode vector initialization
	on 64-bit systems with direct move.
	(vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
	vector initializations, to allow V4SImode vector initializations
	on 64-bit systems with direct move.
	(vsx_splat_v4si): Likewise.
	(vsx_splat_v4si_di): Likewise.
	(vsx_splat_v4sf): Likewise.
	(vsx_splat_v4sf_internal): Likewise.
	(vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
	register classes.
	(vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
	(vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
	initializing V8HImode and V16QImode vectors with the same
	element.
	* config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
	optimization if -maltivec=be.

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

	* gcc.target/powerpc/vec-init-1.c: Add tests where the vector is
	being created from pointers to memory locations.
	* gcc.target/powerpc/vec-init-2.c: Likewise.

From-SVN: r239712
2016-08-23 20:41:32 +00:00
David Malcolm d672cded1f line-map.h: add source_range::from_locations
libcpp/ChangeLog:
	* include/line-map.h (source_range::from_locations): New method.

From-SVN: r239711
2016-08-23 20:20:48 +00:00
Christophe Lyon 0da825e962 [ARM] Fix predicable_short_it attribute for arm_movqi_insn
2016-08-23  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
	attribute for alternatives 3 and 4.

From-SVN: r239710
2016-08-23 22:07:52 +02:00
Fritz Reese cfe37db47a decl.c (gfc_match_structure_decl): Make gfc_structure_id static.
2016-08-23  Fritz Reese  <fritzoreese@gmail.com>

	gcc/fortran/
	* decl.c (gfc_match_structure_decl): Make gfc_structure_id static.

	gcc/testsuite/gfortran.dg/
	* dec_structure_12.f90: New testcase.

From-SVN: r239709
2016-08-23 19:33:46 +00:00
Ian Lance Taylor c0ccddb46c compiler: revamp scheme for ordering calls to import init fcns.
Switch to a new method for determining the order in which import init
    functions are invoked: build an init fcn dependence DAG and walk the DAG
    to rewrite/adjust priorities to account for discrepancies introduced by
    "go test".
    
    This patch includes a change to the export data format generated
    by gccgo. Older versions of gccgo will not be able to read object files
    produced by a newer gccgo, but the new gcc will still be able to read
    old object files.
    
    Fixes golang/go#15738.
    
    Reviewed-on: https://go-review.googlesource.com/25301

From-SVN: r239708
2016-08-23 17:45:45 +00:00
David Malcolm 9f58978668 selftest.h: add ASSERT_STR_CONTAINS
gcc/ChangeLog:
	* selftest.c (selftest::assert_str_contains): New function.
	(selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
	* selftest.h (selftest::assert_str_contains): New decl.
	(ASSERT_STR_CONTAINS): New macro.

From-SVN: r239707
2016-08-23 16:51:57 +00:00