Commit Graph

147775 Commits

Author SHA1 Message Date
Renlin Li
408702b445 [PATCH][PR64971]Convert function pointer to Pmode when emit call.
gcc/

2016-08-04  Renlin Li  <renlin.li@arm.com>

	PR middle-end/64971
	* calls.c (prepare_call_address): Convert funexp to Pmode when
	necessary.
	* config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
	(sibcall_value): Likewise.

From-SVN: r239300
2016-08-09 17:20:14 +00:00
Jason Merrill
d676d623eb PR c++/71712 - ABI tags on conversion ops.
* class.c (check_abi_tags): Don't duplicate tags for conversion ops.

From-SVN: r239299
2016-08-09 12:55:08 -04:00
Jason Merrill
7ab8c6470c Adjust mangling of ABI tags on class template member functions.
* class.c (missing_abi_tags): New.
	(check_abi_tags): Don't check template. Add just_checking mode.
	* mangle.c (abi_flag_at_least, any_abi_below, equal_abi_tags): New.
	(sorted_abi_tags): Split out from write_abi_tags.
	(struct releasing_vec): New.
	(write_unqualified_name): Only look for the primary
	template for types.  Implement backward compatibility.

From-SVN: r239298
2016-08-09 12:55:01 -04:00
Marek Polacek
f0bc3323eb re PR c/7652 (-Wswitch-break : Warn if a switch case falls through)
PR c/7652
gcc/c-family/
	* c-ada-spec.c (dump_generic_ada_node): Add return.
gcc/
	* cselib.c (cselib_expand_value_rtx_1): Add return.
	* gengtype.c (dbgprint_count_type_at): Likewise.
	* hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
	* reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.

From-SVN: r239297
2016-08-09 16:39:28 +00:00
Ian Lance Taylor
bbc824cd56 mksysinfo.sh: always define CLONE_NEWNET
CLONE_NEWNET is needed to compile the syscall tests on GNU/Linux.
    The symbol is not defined in the CentOS 5.11 header files.
    
    Patch from Uros Bizjak.
    
    Reviewed-on: https://go-review.googlesource.com/26630

From-SVN: r239296
2016-08-09 16:38:23 +00:00
Martin Jambor
04d6d3b6d7 [PR ipa/71981] Make get_dynamic_type grok MEM_REF
2016-08-09  Martin Jambor  <mjambor@suse.cz>

        PR ipa/71981
        * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
        if instance is a MEM_REF.

testsuite/
        PR ipa/71981
        * gcc.dg/ipa/pr71981.c: New test.

From-SVN: r239294
2016-08-09 18:05:30 +02:00
Uros Bizjak
045f240b97 re PR rtl-optimization/72843 (internal compiler error: in lra_set_insn_recog_data, at lra.c:964)
PR target/72843
	* config/i386/i386.md (*movtf_internal): Use
	lra_in_progress || reload_completed instead of !can_create_pseudo_p
	in the insn constraint.
	(*movxf_internal): Ditto.
	(*movdf_internal): Ditto.
	(*movsf_internal): Ditto.

From-SVN: r239293
2016-08-09 17:35:34 +02:00
Bin Cheng
c57e78c4be re PR tree-optimization/33707 (scev not handling unsigned conversion)
gcc/testsuite
	PR tree-optimization/33707
	* gcc.dg/vect/pr33707.c: New test.

From-SVN: r239292
2016-08-09 15:10:55 +00:00
Bin Cheng
42970a179d re PR tree-optimization/72772 (Missed SCEV after pass reordering@236440)
PR tree-optimization/72772
	* tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
	for expanded base.

	gcc/testsuite
	PR tree-optimization/pr72772
	* gcc.dg/tree-ssa/pr72772.c: New test.

From-SVN: r239291
2016-08-09 15:08:02 +00:00
Bin Cheng
8aa46dd2d5 re PR tree-optimization/72772 (Missed SCEV after pass reordering@236440)
PR tree-optimization/72772
	* tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
	parameter STOP.
	* tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
	parameter STOP and update calls.  Move expand_simple_operations
	function call from here...
	(simplify_using_initial_conditions): ...to here.  Delete parameter
	STOP.
	(tree_simplify_using_condition): Delete parameter STOP.
	* tree-scalar-evolution.c (simple_iv_with_niters): Update call to
	simplify_using_initial_conditions.

From-SVN: r239290
2016-08-09 15:01:49 +00:00
Jason Merrill
f4fce1837c PR c++/72849 - ICE with incomplete class.
* constexpr.c (cxx_eval_constant_expression): Check
	COMPLETE_TYPE_P before calling is_really_empty_class.
	* class.c (is_really_empty_class): Don't call complete_type.

From-SVN: r239289
2016-08-09 10:37:12 -04:00
Matthew Fortune
810a3aa6bb MIPS: Skip gcc.dg/loop-8.c due to additional invariants
gcc/
	PR rtl-optimization/66669
	* gcc.dg/loop-8.c: Skip for MIPS due to extra invariants.

From-SVN: r239288
2016-08-09 14:36:45 +00:00
Jason Merrill
23f4e590fb PR c++/56701 - wrong type of &*this
* typeck.c (cp_build_addr_expr_1): Remove special *this handling.

From-SVN: r239285
2016-08-09 10:08:33 -04:00
Ian Lance Taylor
b87060ce92 compiler: rewrite compiler directive support
Rewrite the compiler directive support to recognize all the compiler
    directives implemented by the current gc compiler.  The directives other
    than go:linkname are now turned into GOPRAGMA flags attached to a
    function or function declaration.  The go:linkname directive is turned
    into a map attached to the Lex object.  No new directives are actually
    implemented yet, they are just recognized.
    
    Reviewed-on: https://go-review.googlesource.com/26610

From-SVN: r239282
2016-08-09 14:05:17 +00:00
Matthew Fortune
a00f4c6b4f MIPS: Use create_tmp_var_raw in mips_atomic_assign_expand_fenv
gcc/
	PR c/65345
	* config/mips/mips.c (mips_atomic_assign_expand_fenv):
	Use create_tmp_var_raw instead of create_tmp_var.

From-SVN: r239278
2016-08-09 12:36:18 +00:00
Richard Biener
fda5c810e1 tree-ssa-threadbackward.c (profitable_jump_thread_path): Treat same SSA names related.
2016-08-09  Richard Biener  <rguenther@suse.de>

	* tree-ssa-threadbackward.c (profitable_jump_thread_path):
        Treat same SSA names related.

From-SVN: r239276
2016-08-09 08:09:21 +00:00
Jakub Jelinek
9e207d6fec re PR tree-optimization/72824 (Signed floating point zero semantics broken at optimization level -O3 (tree-loop-distribute-patterns))
PR tree-optimization/72824
	* tree-loop-distribution.c (const_with_all_bytes_same): Verify
	real_zerop is not negative.

	* gcc.c-torture/execute/ieee/pr72824.c: New test.

From-SVN: r239275
2016-08-09 09:49:14 +02:00
Richard Biener
50bf47fdc0 re PR tree-optimization/71802 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in expand_LOOP_VECTORIZED)
2016-08-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71802
	* tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
	all merge opportunities with the predecessor.

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

From-SVN: r239274
2016-08-09 07:40:50 +00:00
Richard Biener
fe7afdf5b5 re PR target/68273 (Wrong code on mips/mipsel due to (invalid?) peeking at alignments in function_arg.)
2016-08-09  Richard Biener  <rguenther@suse.de>

	PR ipa/68273
	* ipa-prop.c (ipa_modify_formal_parameters): Build
	parameter types with natural alignment also for the
	over-aligned case.

From-SVN: r239273
2016-08-09 07:38:13 +00:00
Jakub Jelinek
cadec7ca6e re PR c++/72809 (ICE on x86_64-linux-gnu (Segmentation fault, tree_check))
PR c++/72809
	* rtti.c (get_pseudo_ti_index): Return TK_CLASS_TYPE for
	builtin aggregate types without TYPE_BINFO.

	* g++.dg/eh/stdarg1.C: New test.

From-SVN: r239272
2016-08-09 09:23:47 +02:00
Jason Merrill
98e5a19af5 Implement C++17 constexpr lambda.
gcc/c-family/
	* c-cppbuiltin.c (c_cpp_builtins): Update __cpp_constexpr for
	C++17 constexpr lambdas.
gcc/cp/
	* class.c (finalize_literal_type_property): Handle lambdas.
	* constexpr.c (is_valid_constexpr_fn): Likewise.  No longer static.
	(explain_invalid_constexpr_fn, cxx_eval_call_expression): Handle
	lambdas.
	(cxx_eval_constant_expression): Handle capture proxy.
	(var_in_constexpr_fn): Don't check for C++14.
	(var_in_maybe_constexpr_fn): New.
	(potential_constant_expression_1): Use it.  Check DECL_EXPR for
	declarations not allowed in constexpr function.
	* decl.c (make_rtl_for_nonlocal_decl): Use var_in_maybe_constexpr_fn.
	(finish_function): Set DECL_DECLARED_CONSTEXPR_P on lambda members.
	* lambda.c (begin_lambda_type): Set CLASSTYPE_LITERAL_P.
	(maybe_add_lambda_conv_op): Clear thunk CALL_EXPR location.
	(lambda_static_thunk_p): New.
	* parser.c (cp_keyword_starts_decl_specifier_p): Add RID_CONSTEXPR.
	(CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR): New enumerator.
	(cp_parser_decl_specifier_seq): Handle it.
	(cp_parser_lambda_declarator_opt): Use cp_parser_decl_specifier_seq.
	* pt.c (instantiate_class_template_1): Set CLASSTYPE_LITERAL_P.
	(tsubst_copy_and_build) [CALL_EXPR]: Propagate CALL_FROM_THUNK_P.
	* error.c (dump_function_decl): Check TFF_NO_TEMPLATE_BINDINGS.
	(dump_expr) [FUNCTION_DECL]: Pass it.

From-SVN: r239268
2016-08-09 00:33:58 -04:00
Jason Merrill
7dc2b4a235 Fix empty class parameters with constexpr.
PR c++/67131
	* class.c (is_really_empty_class): Call complete_type.
	* constexpr.c (cxx_eval_constant_expression): Check
	is_really_empty_class.
	(potential_constant_expression_1): Likewise.  Check for error type.

From-SVN: r239267
2016-08-09 00:33:42 -04:00
Andi Kleen
b08e71f9e8 Fix warning breaking profiled bootstrap
This patch fixes an bootstrap error with autoprofiledbootstrap
due to uninitiliazed variables, because the compiler cannot
figure out they don't need to be initialized in an error path.
Just always initialize them.

gcc/:

2016-08-08  Andi Kleen  <ak@linux.intel.com>

	* tree-vrp.c (get_single_symbol): Always initialize inv and neg.

From-SVN: r239266
2016-08-09 02:48:44 +00:00
Andi Kleen
c43c511216 Make autofdo tests safer for parallel builds
There were some reports that the autofdo tests are non deterministic
with parallel builds. I wasn't able to reproduce this, but here are
two changes that may help:

- Always use unique file names for temporary files.
- Don't print file names in the test log because the directories
can vary (suggested by Jeff Law)

gcc/testsuite/:

2016-08-08  Andi Kleen  <ak@linux.intel.com>

	* lib/profopt.exp: (auto-profopt-execute): Don't include full
	test command line in failure log.
	(profopt-execute): dito. Make autofdo file names unique.

From-SVN: r239265
2016-08-09 02:47:25 +00:00
GCC Administrator
5e1a1c978f Daily bump.
From-SVN: r239264
2016-08-09 00:16:14 +00:00
Ian Lance Taylor
0717bdbfbd text/template: reduce maxExecDepth for gccgo further
We already lowered the limit of recursive template invocations from
    100,000 to 10,000, but the tests still fail occasionally on
    x86_64-pc-linux-gnu when using GNU ld (so that split stacks are not
    fully functional).  Reduce the limit further, to 1000, enough so that
    the test passes consistently.
    
    Permitting 1000 recursive template invocations still seems capacious
    enough for real world use.
    
    Reviewed-on: https://go-review.googlesource.com/25590

From-SVN: r239261
2016-08-08 22:55:29 +00:00
David Malcolm
895aa8e113 c-format.c: suggest the correct format string to use (PR c/64955)
This adds fix-it hints to c-format.c so that it can (sometimes) suggest
the format string the user should have used.

The patch adds selftests for the new code in c-format.c.  These
selftests are thus lang-specific.  This is the first time we've had
lang-specific selftests, and hence the patch also adds a langhook for
running them.  (Note that currently the Makefile only invokes the
selftests for cc1).

gcc/c-family/ChangeLog:
	PR c/64955
	* c-common.h (selftest::c_format_c_tests): New declaration.
	(selftest::run_c_tests): New declaration.
	* c-format.c: Include "selftest.h.
	(format_warning_va): Add param "corrected_substring" and use
	it to add a replacement fix-it hint.
	(format_warning_at_substring): Likewise.
	(format_warning_at_char): Update for new param of
	format_warning_va.
	(argument_parser::check_argument_type): Pass "fki" to
	check_format_types.
	(check_format_types): Add param "fki" and pass it to
	format_type_warning.
	(deref_n_times): New function.
	(get_modifier_for_format_len): New function.
	(selftest::test_get_modifier_for_format_len): New function.
	(get_format_for_type): New function.
	(format_type_warning): Add param "fki" and use it to attempt
	to provide hints for argument types when calling
	format_warning_at_substring.
	(selftest::get_info): New function.
	(selftest::assert_format_for_type_streq): New function.
	(ASSERT_FORMAT_FOR_TYPE_STREQ): New macro.
	(selftest::test_get_format_for_type_printf): New function.
	(selftest::test_get_format_for_type_scanf): New function.
	(selftest::c_format_c_tests): New function.

gcc/c/ChangeLog:
	PR c/64955
	* c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
	this up to selftest::run_c_tests.
	(selftest::run_c_tests): New function.

gcc/ChangeLog:
	PR c/64955
	* langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
	do-nothing langhook.
	(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
	* langhooks.h (struct lang_hooks): Add run_lang_selftests.
	* selftest-run-tests.c: Include "tree.h" and "langhooks.h".
	(selftest::run_tests): Call lang_hooks.run_lang_selftests.

gcc/testsuite/ChangeLog:
	PR c/64955
	* gcc.dg/format/diagnostic-ranges.c: Add fix-it hints to expected
	output.

From-SVN: r239260
2016-08-08 22:50:47 +00:00
Ian Lance Taylor
b123572d81 libgo: don't have .lo depend on .lo.dep
Having each .lo depend on the corresponding .lo.dep caused too many
    rebuilds, because the .lo.dep files are rebuilt when Makefile changes.
    Instead, if the .lo.dep file changes, remove the .lo file.
    
    Reviewed-on: https://go-review.googlesource.com/25588

From-SVN: r239258
2016-08-08 21:23:57 +00:00
David Malcolm
a7d79e5cbb Fix selftest::test_lexer_string_locations_ebcdic for systems without iconv (PR bootstrap/72844)
selftest::test_lexer_string_locations_ebcdic has this clause:

  /* EBCDIC support requires iconv.  */
  if (!HAVE_ICONV)
    return;

leading to a build failure on systems without iconv.  This conditional
works in libcpp due to this in libcpp/internal.h:

  #if HAVE_ICONV
  #include <iconv.h>
  #else
  #define HAVE_ICONV 0
  typedef int iconv_t;  /* dummy */
  #endif

Fix the problem by ensuring that HAVE_ICONV is always defined within
gcc/input.c.

gcc/ChangeLog:
	PR bootstrap/72844
	* input.c: Ensure that HAVE_ICONV is defined.

From-SVN: r239257
2016-08-08 20:46:19 +00:00
Ian Lance Taylor
9a7b016159 testsuite: fix gotest for absolute srcdir
The recent changes to Makefile.am mean that if you configure with an
    absolute path as srcdir then gotest will be invoked with absolute paths
    for the files.  That case never worked.  This patch fixes it.
    
    Reviewed-on: https://go-review.googlesource.com/25587

From-SVN: r239256
2016-08-08 20:34:05 +00:00
Prathamesh Kulkarni
9afda630f5 pr71078-1.c: Add require-effective-target c99_runtime.
2016-08-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

testsuite/
	* gcc.dg/tree-ssa/pr71078-1.c: Add require-effective-target
	c99_runtime.
	* gcc.dg/tree-ssa/pr71078-1-double.c: Likewise.
	* gcc.dg/tree-ssa/pr71078-1-long-double.c: Likewise.
	* gcc.dg/tree-ssa/pr71078-2.c: Likewise.
	* gcc.dg/tree-ssa/pr71078-2-double.c: Likewise.
	* gcc.dg/tree-ssa/pr71078-2-long-double.c: Likewise.
	* gcc.dg/tree-ssa/pr71078-3.c: Likewise.

From-SVN: r239255
2016-08-08 20:17:36 +00:00
David Malcolm
e52ed3fee2 Use class substring_loc in c-format.c (PR c/52952)
gcc/c-family/ChangeLog:
	PR c/52952
	* c-format.c: Include "diagnostic.h".
	(location_column_from_byte_offset): Delete.
	(location_from_offset): Delete.
	(format_warning_va): New function.
	(format_warning_at_substring): New function.
	(format_warning_at_char): New function.
	(check_format_arg): Capture location of format_tree and pass to
	check_format_info_main.
	(argument_parser): Add fields "start_of_this_format" and
	"format_string_cst".
	(flag_chars_t::validate): Add param "format_string_cst".  Convert
	warning_at call using location_from_offset to call to
	format_warning_at_char.
	(argument_parser::argument_parser): Add param "format_string_cst_"
	and use use it to initialize field "format_string_cst".
	Initialize new field "start_of_this_format".
	(argument_parser::read_format_flags): Convert warning_at call
	using location_from_offset to a call to format_warning_at_char.
	(argument_parser::read_any_format_left_precision): Likewise.
	(argument_parser::read_any_format_precision): Likewise.
	(argument_parser::read_any_other_modifier): Likewise.
	(argument_parser::find_format_char_info): Likewise, in three places.
	(argument_parser::parse_any_scan_set): Likewise, in one place.
	(argument_parser::handle_conversions): Likewise, in two places.
	(argument_parser::check_argument_type): Add param "fmt_param_loc"
	and use it to make a substring_loc.  Pass the latter to
	check_format_types.
	(check_format_info_main): Add params "fmt_param_loc" and
	"format_string_cst".  Convert warning_at calls using
	location_from_offset to calls to format_warning_at_char.  Pass the
	new params to the arg_parser ctor.  Pass "format_string_cst" to
	flag_chars.validate.  Pass "fmt_param_loc" to
	arg_parser.check_argument_type.
	(check_format_types): Convert first param from a location_t
	to a const substring_loc & and rename to "fmt_loc".  Attempt
	to extract the range of the relevant parameter and pass it
	to format_type_warning.
	(format_type_warning): Convert first param from a location_t
	to a const substring_loc & and rename to "fmt_loc".  Add
	params "param_range" and "type".  Replace calls to warning_at
	with calls to format_warning_at_substring.

gcc/testsuite/ChangeLog:
	PR c/52952
	* gcc.dg/cpp/pr66415-1.c: Likewise.
	* gcc.dg/format/asm_fprintf-1.c: Update column numbers.
	* gcc.dg/format/c90-printf-1.c: Likewise.
	* gcc.dg/format/diagnostic-ranges.c: New test case.

From-SVN: r239253
2016-08-08 20:10:19 +00:00
Ian Lance Taylor
f432d1282d re PR go/72814 (reflect FAILs on 32-bit Solaris/SPARC: SIGILL)
PR go/72814

    runtime: treat zero-sized result value as void
    
    Change the FFI interface to treat a call to a function that returns a
    zero-sized result as a call to a function that returns void.
    
    This is part of the fix for https://gcc.gnu.org/PR72814.  On 32-bit
    SPARC systems, a call to a function that returns a non-zero-sized struct
    is followed by an unimp instruction that describes the size of the
    struct.  The function returns to the address after the unimp
    instruction.  The libffi library can not represent a zero-sized struct,
    so we wind up treating it as a 1-byte struct.  Thus in that case libffi
    calls the function with an unimp instruction, but the function does not
    adjust the return address.  The result is that the program attempts to
    execute the unimp instruction, causing a crash.
    
    This is part of a change that fixes the crash by treating all functions
    that return zero bytes as functions that return void.
    
    Reviewed-on: https://go-review.googlesource.com/25585

	* go-gcc.cc (Gcc_backend::function_type): If the return type is
	zero bytes, treat the function as returning void.
	(return_statement): If the return type is zero bytes, don't
	actually return any values.

From-SVN: r239252
2016-08-08 19:53:44 +00:00
Jakub Jelinek
5c93439607 re PR c++/58706 (ICE with lambda in OpenMP for-loop)
PR c++/58706
	* parser.c: Include tree-iterator.h.
	(cp_parser_omp_for_loop_init): Move lambda DECL_EXPRs from init
	to FOR_BLOCK.
	(cp_parser_omp_for_loop): Handle non-STATEMENT_LIST FOR_BLOCK
	entries.

	* testsuite/libgomp.c++/pr58706.C: New test.

From-SVN: r239251
2016-08-08 21:50:29 +02:00
Jakub Jelinek
77524e0d97 re PR fortran/72716 (ICE in gfc_resolve_omp_declare_simd, at fortran/openmp.c:5156)
PR fortran/72716
	* openmp.c (gfc_match_omp_declare_simd): Don't stick anything into
	BLOCK DATA ns, it will be rejected later.

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

From-SVN: r239250
2016-08-08 21:48:48 +02:00
Jakub Jelinek
2187f2a261 re PR middle-end/72781 (-Wuninitialized false positives in OpenMP code)
PR middle-end/72781
	* omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
	private vars for lastprivate and for linear iterator.

	* gcc.dg/gomp/pr72781.c: New test.

From-SVN: r239249
2016-08-08 21:46:36 +02:00
Jakub Jelinek
ad20058031 re PR middle-end/68762 (link error for inline function decorated with OpenMP declare simd)
PR middle-end/68762
	* omp-simd-clone.c: Include varasm.h.
	(simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
	DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
	DECL_ONE_ONLY call make_decl_one_only.  Fix up spelling in comment and
	update function name.

	* g++.dg/vect/pr68762-1.cc: New test.
	* g++.dg/vect/pr68762-2.cc: New test.
	* g++.dg/vect/pr68762.h: New file.

From-SVN: r239248
2016-08-08 21:45:53 +02:00
David Malcolm
1c4d457e82 c-format.c: cleanup of check_format_info_main
gcc/c-family/ChangeLog:
	* c-format.c (class flag_chars_t): New class.
	(struct length_modifier): New struct.
	(class argument_parser): New class.
	(flag_chars_t::flag_chars_t): New ctor.
	(flag_chars_t::has_char_p): New method.
	(flag_chars_t::add_char): New method.
	(flag_chars_t::validate): New method.
	(flag_chars_t::get_alloc_flag): New method.
	(flag_chars_t::assignment_suppression_p): New method.
	(argument_parser::argument_parser): New ctor.
	(argument_parser::read_any_dollar): New method.
	(argument_parser::read_format_flags): New method.
	(argument_parser::read_any_format_width): New method.
	(argument_parser::read_any_format_left_precision): New method.
	(argument_parser::read_any_format_precision): New method.
	(argument_parser::handle_alloc_chars): New method.
	(argument_parser::read_any_length_modifier): New method.
	(argument_parser::read_any_other_modifier): New method.
	(argument_parser::find_format_char_info): New method.
	(argument_parser::validate_flag_pairs): New method.
	(argument_parser::give_y2k_warnings): New method.
	(argument_parser::parse_any_scan_set): New method.
	(argument_parser::handle_conversions): New method.
	(argument_parser::check_argument_type): New method.
	(check_format_info_main): Introduce classes argument_parser
	and flag_chars_t, moving the code within the loop into methods
	of these classes.  Make various locals "const".

From-SVN: r239247
2016-08-08 18:10:54 +00:00
Pitchumani Sivanupandi
66c3dd8c1b driver-avr.c (specfiles_doc_url): Remove.
* config/avr/driver-avr.c (specfiles_doc_url): Remove.
	(avr_diagnose_devicespecs_error): Remove.
	(avr_devicespecs_file): Remove composing absolute path for specfile
	and its verbose info. Remove conditions to check specs-file,

From-SVN: r239246
2016-08-08 20:37:57 +03:00
Martin Sebor
989d0071bb PR testsuite/72838 - FAIL: g++.dg/cpp0x/constexpr-cast.C
gcc/testsuite/ChangeLog:
	* gcc/testsuite/g++.dg/cpp0x/constexpr-cast.C: Correct target selector.
	* gcc/testsuite/g++.dg/warn/overflow-warn-3.C: Same.
	* gcc/testsuite/g++.dg/warn/overflow-warn-4.C: Same.

From-SVN: r239242
2016-08-08 09:32:16 -06:00
Jakub Jelinek
5435398d80 re PR rtl-optimization/72821 (RTL check: expected elt 2 type 'B', have '0' (rtx barrier) in BLOCK_FOR_INSN, at rtl.h:1424)
PR rtl-optimization/72821
	* lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
	just return false for them.

From-SVN: r239241
2016-08-08 15:58:46 +02:00
Alan Modra
a1c138325c [RS6000] TOC refs generated during reload
The generic reload fix for pr72771 exposed a problem with recognizing
-mcmodel=medium/large TOC references generated during reload.

	PR target/72771
	* config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
	toc refs created during reload.  Update function comment.

From-SVN: r239240
2016-08-08 21:35:11 +09:30
Andre Vehreschild
7090cac9f7 re PR fortran/71936 (ICE in wide_int_to_tree, at tree.c:1487)
gcc/fortran/ChangeLog:

2016-08-08  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/71936
	* trans-array.c (gfc_array_allocate): When SOURCE= is a function
	stick with the ref of the object to allocate.

gcc/testsuite/ChangeLog:

2016-08-08  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/71936
	* gfortran.dg/allocate_with_source_21.f03: New test.

From-SVN: r239237
2016-08-08 11:58:21 +02:00
Andre Vehreschild
64e56ab026 re PR fortran/72698 (ICE in lhd_incomplete_type_error, at langhooks.c:205)
gcc/testsuite/ChangeLog:

2016-08-08  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/72698
	* gfortran.dg/allocate_with_source_20.f03: New test.


gcc/fortran/ChangeLog:

2016-08-08  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/72698
	* trans-stmt.c (gfc_trans_allocate): Prevent generating code for
	copy of zero sized string and with it an ICE.

From-SVN: r239236
2016-08-08 11:49:37 +02:00
Alan Modra
0476487d49 [RS6000] PR72802 part 2, reload ICE
After fixing the constraint problem, we hit an "insn does not satisfy
its constraints" with -mno-lra on the following insn, a vector load
from mem which has an invalid offset:
(insn 631 630 1122 12 (set (reg:SF 108 31 [orig:260 pretmp_44 ] [260])
        (mem:SF (plus:DI (reg:DI 30 30 [orig:338 ivtmp.141 ] [338])
                (const_int 2 [0x2])) [5 MEM[base: _1, offset: 2B]+0 S4 A32])) 470 {movsf_hardfloat}
     (nil))

Here are the reload costs for the various alternatives of
movsf_hardfloat:
"=!r, !r,  m,  f, ww, ww, !r,  f, wb,  m, wY, wu,  Z,?wn, ?r,*c*l, !r, *h"
  "r,  m,  r,  f, ww,  j,  j,  m, wY,  f, wb,  Z, wu,  r, wn,   r, *h,  0"
 617 609  17  17   8   8 617   9   8  17  17   8  17  23  23   17 617  17

Notice that the cost for a vector<-vector move (ww,ww) is the same as
the cost for a vector<-mem move (wb,wY or wu,Z).  Since the
vector<-vector move comes first, it is chosen and the mem part of the
insn reloaded.  That just gives another copy of insn 631.

	PR target/72802
	* config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
	alternatives.  Put loads first, then stores, and reg/reg moves
	within same class later.  Delete attr length.
testsuite/
	* gcc.c-torture/compile/pr72802.c: New.

From-SVN: r239234
2016-08-08 18:36:49 +09:30
Alan Modra
ad69178ca9 [RS6000] PR72802 part 1, fix constraints for lxssp/stxssp
We can't use "o" constraint for lsxxp/stxssp since those insns have a
DS-form offset field, ie. the bottom two bits of the offset must be 0.
So use "wY" instead, but that leads to finding another problem.

mem_operand_gpr is only suitable for gpr loads/stores since it does
not enforce multiple-of-4 offsets when -m32.  So "wY" can't use
mem_operand_gpr, and the vsx tests in mem_operand_gpr are bogus.

I've deleted offsettable_mem_14bit_operand because it wasn't used
anywhere but in the wY constraint.  Note also that the new wY
constraint doesn't use memory_operand because that is redundant in a
constraint, having already been tested in the predicate.

	PR target/72802
	* config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
	(mem_operand_ds_form): New predicate.
	* config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
	* config/rs6000/constraints.md (wY): Use mem_operand_df_form.
	* config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
	* config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
	(extendsfdf2_fpr): Replace o constraint with wY.

From-SVN: r239233
2016-08-08 18:35:16 +09:30
Andre Vehreschild
8e9218f2b3 re PR fortran/70524 (ICE when using -frepack-arrays -Warray-temporaries)
gcc/testsuite/ChangeLog:

2016-08-08  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/70524
	* gfortran.dg/dependency_48.f90: New test.


gcc/fortran/ChangeLog:

2016-08-08  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/70524
	* trans-array.c (gfc_trans_dummy_array_bias): Ensure that the
	location information is correctly set.
	* trans-decl.c (gfc_trans_deferred_vars): Set the locus of the
	current construct early.

From-SVN: r239230
2016-08-08 10:11:29 +02:00
GCC Administrator
1b8256df48 Daily bump.
From-SVN: r239228
2016-08-08 00:16:16 +00:00
Ian Lance Taylor
4f8e688afc internal/syscall/unix: fix syscalls for alpha, ia64, s390
Also change the configure script to set GOARCH correctly for ia64, and
    add ia64 as a processor to match.sh and gotest.
    
    Reviewed-on: https://go-review.googlesource.com/25549

From-SVN: r239225
2016-08-07 22:32:46 +00:00
Thomas Koenig
531e5ae3cc re PR fortran/70040 (ICE in gimplify.c with deferred-length strings)
2016-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/70040
	Corrected last ChangeLog entry.

From-SVN: r239222
2016-08-07 15:40:34 +00:00