1. 01 Nov, 2017 1 commit
  2. 31 Oct, 2017 31 commits
    • PR target/82002 Part 1: Correct ICE caused by wrong calculation · 98df3ab0
      gcc:
      	config/i386/i386.c (ix86_expand_epilogue): Correct stack
      	calculation.
      
      gcc/testsuite:
      	gcc.target/i386/pr82002-1.c: New test.
      	gcc.target/i386/pr82002-2a.c: New xfail test.
      	gcc.target/i386/pr82002-2b.c: New xfail test.
      
      From-SVN: r254284
      Daniel Santos committed
    • [PR 81702] Remove devirtualization assert · 0a9088ee
      2017-10-31  Martin Jambor  <mjambor@suse.cz>
      
      	PR c++/81702
      	* gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert.
      
      testsuite/
      	* g++.dg/tree-ssa/pr81702.C: New test.
      
      From-SVN: r254283
      Martin Jambor committed
    • jit: add a way to preserve testsuite executables · 77f4ead7
      gcc/jit/ChangeLog:
      	* docs/internals/index.rst (Running the test suite): Document
      	PRESERVE_EXECUTABLES.
      	(Running under valgrind): Add markup to RUN_UNDER_VALGRIND.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/jit.exp (jit-dg-test): If PRESERVE_EXECUTABLES is set in
      	the environment, don't delete the generated executable.
      
      From-SVN: r254282
      David Malcolm committed
    • pt.c: add missing %< and %> · 84ffba12
      gcc/cp/ChangeLog:
      	* pt.c (listify): Use %< and %> for description of #include.
      
      gcc/testsuite/ChangeLog:
      	* g++.dg/cpp0x/auto21.C: Update dg-error to reflect addition of
      	quotes.
      	* g++.dg/cpp0x/missing-initializer_list-include.C: Likewise.
      
      From-SVN: r254281
      David Malcolm committed
    • diagnostics: get rid of *_at_rich_loc in favor of overloading · 64a5912c
      Adding a fix-it hint currently involves changing e.g.:
      
        error_at (token->location,
                  "unknown type name %qE; did you mean %qs?",
                  token->value, hint);
      to:
      
        gcc_rich_location richloc (token->location);
        richloc.add_fixit_replace (hint);
        error_at_rich_loc (&richloc,
                           "unknown type name %qE; did you mean %qs?",
                           token->value, hint);
      
      to make the change from taking a location_t to a rich_location *.
      
      This patch renames the "*_at_rich_loc" diagnostic entrypoints to use
      the same function names for rich_location * as for location_t,
      via overloading, to simplify the above change to just changing from:
      
        error_at (token->location,
                  "unknown type name %qE; did you mean %qs?",
                  token->value, hint);
      to:
      
        gcc_rich_location richloc (token->location);
        richloc.add_fixit_replace (hint);
        error_at (&richloc,
                  "unknown type name %qE; did you mean %qs?",
                  token->value, hint);
      
      thus saving space (and typing) and usually avoiding the need to reindent
      the "error_at" invocation.
      
      With this change, 0 is no longer acceptable as a location_t to these
      entrypoints, as e.g.:
      
      ../../src/gcc/auto-profile.c:855:37: error: call of overloaded
      'inform(int, const char [18])' is ambiguous
             inform (0, "Not expected TAG.");
                                           ^
      In file included from ../../src/gcc/auto-profile.c:35:0:
      ../../src/gcc/diagnostic-core.h:88:13: note: candidate:
      'void inform(location_t, const char*, ...)'
       extern void inform (location_t, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
                   ^~~~~~
      ../../src/gcc/diagnostic-core.h:89:13: note: candidate:
      'void inform(rich_location*, const char*, ...)'
       extern void inform (rich_location *, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
                   ^~~~~~
      
      Such locations now need to be spelled out as UNKNOWN_LOCATION,
      rather than 0.
      
      I considered making the API take a rich_location & rather than a
      rich_location *, but doing so would mean replacing
        diagnostic_set_info
      and
        diagnostic_set_info_translated
      with a constructor for diagnostic_info, which was a more invasive
      change.  Maybe in the future.
      
      gcc/ChangeLog:
      	* auto-profile.c (autofdo_source_profile::read): Use
      	UNKNOWN_LOCATION rather than 0.
      	* diagnostic-core.h (warning_at_rich_loc): Rename to...
      	(warning_at): ...this overload.
      	(warning_at_rich_loc_n): Rename to...
      	(warning_n): ...this overload.
      	(error_at_rich_loc): Rename to...
      	(error_at): ...this overload.
      	(pedwarn_at_rich_loc): Rename to...
      	(pedwarn): ...this overload.
      	(permerror_at_rich_loc): Rename to...
      	(permerror): ...this overload.
      	(inform_at_rich_loc): Rename to...
      	(inform): ...this overload.
      	* diagnostic.c: (diagnostic_n_impl): Delete location_t-based decl.
      	(diagnostic_n_impl_richloc): Rename to...
      	(diagnostic_n_impl): ...this rich_location *-based decl.
      	(inform_at_rich_loc): Rename to...
      	(inform): ...this, and add an assertion.
      	(inform_n): Update for removal of location_t-based diagnostic_n_impl.
      	(warning_at_rich_loc): Rename to...
      	(warning_at): ...this, and add an assertion.
      	(warning_at_rich_loc_n): Rename to...
      	(warning_n): ...this, and add an assertion.
      	(warning_n): Update location_t-based implementation for removal of
      	location_t-based diagnostic_n_impl.
      	(pedwarn_at_rich_loc): Rename to...
      	(pedwarn): ...this, and add an assertion.
      	(permerror_at_rich_loc): Rename to...
      	(permerror): ...this, and add an assertion.
      	(error_n): Update for removal of location_t-based diagnostic_n_impl.
      	(error_at_rich_loc): Rename to...
      	(error_at): ...this, and add an assertion.
      	* gcc.c (do_spec_1): Use UNKNOWN_LOCATION rather than 0.
      	(driver::do_spec_on_infiles): Likewise.
      	* substring-locations.c (format_warning_va): Update for renaming
      	of inform_at_rich_loc.
      
      gcc/c-family/ChangeLog:
      	* c-common.c (binary_op_error): Update for renaming of
      	error_at_rich_loc.
      	(c_parse_error): Likewise.
      	* c-warn.c (warn_logical_not_parentheses): Likewise for
      	renaming of inform_at_rich_loc.
      	(warn_for_restrict): Likewise for renaming of
      	warning_at_rich_loc_n.
      
      gcc/c/ChangeLog:
      	* c-decl.c (implicit_decl_warning): Update for renaming of
      	pedwarn_at_rich_loc and warning_at_rich_loc.
      	(implicitly_declare): Likewise for renaming of inform_at_rich_loc.
      	(undeclared_variable): Likewise for renaming of error_at_rich_loc.
      	* c-parser.c (c_parser_declaration_or_fndef): Likewise.
      	(c_parser_struct_or_union_specifier): Likewise for renaming of
      	pedwarn_at_rich_loc.
      	(c_parser_parameter_declaration): Likewise for renaming of
      	error_at_rich_loc.
      	* c-typeck.c (build_component_ref): Likewise.
      	(build_unary_op): Likewise for renaming of inform_at_rich_loc.
      	(pop_init_level): Likewise for renaming of warning_at_rich_loc.
      	(set_init_label): Likewise for renaming of error_at_rich_loc.
      
      gcc/cp/ChangeLog:
      	* class.c (explain_non_literal_class): Use UNKNOWN_LOCATION rather
      	than 0.
      	* name-lookup.c (suggest_alternatives_for): Update for renaming of
      	inform_at_rich_loc.
      	(maybe_suggest_missing_header): Likewise.
      	(suggest_alternative_in_explicit_scope): Likewise.
      	* parser.c (cp_parser_diagnose_invalid_type_name): Likewise for
      	renaming of error_at_rich_loc.
      	(cp_parser_string_literal): Likewise.
      	(cp_parser_nested_name_specifier_opt): Likewise.
      	(cp_parser_cast_expression): Likewise for renaming of
      	warning_at_rich_loc.
      	(cp_parser_decl_specifier_seq): Likewise for renaming of
      	error_at_rich_loc and warning_at_rich_loc.
      	(cp_parser_elaborated_type_specifier): Likewise for renaming of
      	pedwarn_at_rich_loc.
      	(cp_parser_cv_qualifier_seq_opt): Likewise for renaming of
      	error_at_rich_loc.
      	(cp_parser_virt_specifier_seq_opt): Likewise.
      	(cp_parser_class_specifier_1): Likewise.
      	(cp_parser_class_head): Likewise.
      	(cp_parser_member_declaration): Likewise for renaming of
      	pedwarn_at_rich_loc, warning_at_rich_loc, and error_at_rich_loc.
      	(cp_parser_enclosed_template_argument_list): Likewise for renaming
      	of error_at_rich_loc.
      	(set_and_check_decl_spec_loc): Likewise.
      	* pt.c (listify): Likewise.
      	* rtti.c (typeid_ok_p): Likewise.
      	* semantics.c (process_outer_var_ref): Use UNKNOWN_LOCATION rather
      	than 0.
      	* typeck.c (access_failure_info::maybe_suggest_accessor): Update
      	for renaming of inform_at_rich_loc.
      	(finish_class_member_access_expr): Likewise for renaming of
      	error_at_rich_loc.
      
      gcc/objc/ChangeLog:
      	* objc-gnu-runtime-abi-01.c (objc_gnu_runtime_abi_01_init): Use
      	UNKNOWN_LOCATION rather than 0.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/plugin/diagnostic_plugin_show_trees.c (show_tree): Update
      	for renaming of error_at_rich_loc and inform_at_rich_loc.
      	* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
      	(test_show_locus): Likewise for renaming of warning_at_rich_loc.
      
      libcpp/ChangeLog:
      	* directives.c (_cpp_handle_directive): Update for renaming of
      	cpp_error_at_richloc to cpp_error_at.
      	* errors.c (cpp_diagnostic_at_richloc): Rename to...
      	(cpp_diagnostic_at): ...this, dropping the location_t-based
      	implementation.
      	(cpp_diagnostic): Update for removal of location_t-based
      	cpp_diagnostic_at.
      	(cpp_error_at): Likewise.
      	(cpp_error_at_richloc): Rename to...
      	(cpp_error_at): ...this, and update for renaming of
      	cpp_diagnostic_at_richloc.
      	* include/cpplib.h (cpp_error_at_richloc): Rename to...
      	(cpp_error_at): ...this.
      
      From-SVN: r254280
      David Malcolm committed
    • [C++ PATCH] overloaded operator fns [5/N] · 881c969c
      https://gcc.gnu.org/ml/gcc-patches/2017-10/
      	* cp-tree.h (struct operator_name_info_t): Rename to ...
      	(struct ovl_op_info_t): ... here.  Add tree_code field.
      	(operator_name_info, assignment_operator_name_info): Delete.
      	(ovl_op_info): Declare.
      	(OVL_OP_INFO): Adjust.
      	* decl.c (grok_op_properties): Use ovl_op_flags.
      	* lex.c (operator_name_info, assignment_operator_name_info):
      	Delete.
      	(ovl_op_info): Define.
      	(set_operator_ident): Adjust.
      	(init_operators): Set tree_code.
      	* mangle.c (write_unqualified_id): Adjust operator array scan.
      
      From-SVN: r254279
      Nathan Sidwell committed
    • builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and _Float<N>X built-in… · c6762423
      builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and _Float<N>X built-in functions so that the variant...
      
      2017-10-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and
      	_Float<N>X built-in functions so that the variant without the
      	"__builtin_" prefix is only enabled for the GNU C and Objective C
      	languages when they are in non-strict ANSI/ISO mode.
      	(DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise.
      	* target.def (floatn_builtin_p): Add a target hook to control
      	whether _Float<N> and _Float<N>X built-in functions without the
      	"__builtin_" prefix are enabled, and return true for C and
      	Objective C in the default hook.  Include langhooks.h in
      	targhooks.c.
      	* targhooks.h (default_floatn_builtin_p): Likewise.
      	* targhooks.c (default_floatn_builtin_p): Likewise.
      	* doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the
      	floatn_builtin_p target hook.
      	* doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise.
      
      From-SVN: r254277
      Michael Meissner committed
    • [C++ PATCH] overloaded operator fns [4/N] · 6ff16d19
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg02362.html
      	* lex.c (init_operators): Allow NULL operator name.  Don't add
      	special cases.
      	* operators.def: Use NULL for mangling only operators.  Move to
      	after regular operators but move assignment operators last.
      
      From-SVN: r254276
      Nathan Sidwell committed
    • re PR rtl-optimization/81803 (miscompilation at -O1 on mips64el) · 8e02e8a0
      	PR rtl-optimization/81803
      	* lra-constraints.c (curr_insn_transform): Also reload the whole
      	register for a strict subreg no wider than a word if this is for
      	a WORD_REGISTER_OPERATIONS target.
      
      Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
      
      From-SVN: r254275
      Matthew Fortune committed
    • re PR ada/82785 (gnat bootstrap fails on m68k-linux-gnu) · e6b6e96a
      	PR ada/82785
      	* gcc-interface/Makefile.in (m68k/Linux): Fix typo.
      
      From-SVN: r254274
      Eric Botcazou committed
    • * gdbinit.in: Skip over inlines from timevar.h. · e1d74c91
      From-SVN: r254273
      Jason Merrill committed
    • constexpr.c, pt.c: Adjust comments. · 12d0e3aa
      	* constexpr.c, pt.c: Adjust comments.
      
      	* g++.dg/cpp1y/lambda-generic-69078-1.C: Remove #include.
      
      From-SVN: r254272
      Jason Merrill committed
    • [C++ PATCH] overloaded operator fns [3/N] · f26881e3
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg02343.html
      	* cp-tree.h (enum ovl_op_flags): New.
      	(struct operator_name_info_t): Rename arity to flags.
      	* lex.c (set_operator_ident): New.
      	(init_operators): Use it.  Adjust for flags.
      	* mangle.c (write_unqualified_id): Adjust for flags.
      	* operators.def: Replace arity with flags.
      
      From-SVN: r254271
      Nathan Sidwell committed
    • Fix fortran build error on AIX. · 5e36e11e
      	gcc/fortran/
      	* parse.c (unexpected_eof): Call gcc_unreachable before return.
      
      From-SVN: r254270
      James E Wilson committed
    • GCOV: add -j argument (human readable format). · 29a4ef18
      2017-10-31  Martin Liska  <mliska@suse.cz>
      
      	* doc/gcov.texi: Document new option.
      	* gcov.c (print_usage): Likewise print it.
      	(process_args): Support the argument.
      	(format_count): New function.
      	(format_gcov): Use the function.
      2017-10-31  Martin Liska  <mliska@suse.cz>
      
      	* g++.dg/gcov/loop.C: New test.
      	* lib/gcov.exp: Support human readable format for counts.
      
      From-SVN: r254269
      Martin Liska committed
    • Fix typo in my email, in changelog. · cbb449d1
      From-SVN: r254268
      Segher Boessenkool committed
    • [C++ PATCH] overloaded operator fns [2/N] · 88a819be
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg02326.html
      	gcc/cp/
      	* cp-tree.h (ovl_op_identifier): New.
      	(assign_op_identifier, call_op_identifier): Adjust.
      	(cp_operator_id, cp_assignment_operator_ide): Delete.
      	(SET_OVERLOADED_OPERATOR_CODE): Delete.
      	(OVL_OP_INFO): New.
      	* call.c (op_error): Use OVL_OP_INFO.
      	(build_conditional_expr_1): Use ovl_op_identifier.
      	(build_new_op_1): Use OVL_OP_INFO & ovl_op_identifier.
      	(build_op_delete_call): Likewise.
      	* class.c (type_requires_array_cookie): Use ovl_op_identifier.
      	* decl.c (duplicate_decls): Directly copy operator code.
      	(builtin_function_1): Do not set operator code.
      	(build_library_fn): Directly set operator code.
      	(push_cp_library_fn): Use ovl_op_identifier.
      	(grok_op_properties): Directly set operator code.
      	* decl2.c (maybe_warn_sized_delete): Use ovl_op_identifier.
      	* error.c (dump_expr): Use OVL_OP_INFO.
      	(op_to_string): Add assop arg. Use OVL_OP_INFO.
      	(assop_to_string): Delete.
      	(args_to_string): Adjust.
      	* init.c (build_new_1): Use ovl_op_identifier.
      	* mangle.c (write_unqualified_name): Use OVL_OP_INFO.
      	(write_expression): Likewise.
      	* method.c (synthesized_method_walk): Use ovl_op_identifier.
      	(implicitly_declare_fn): Use assign_op_identifier. Directly set
      	operator code.
      	* name-lookup.c (get_class_binding): Use assign_op_identifier.
      	* parser.c (cp_parser_operator): Use ovl_op_identifier.
      	(cp_parser_omp_clause_reduction): Likewise.
      	* semantics.c (omp_reduction_id): Likewise.
      	* typeck.c (cxx_sizeof_or_alignof_type): Use OVL_OP_INFO.
      
      	libcc1/
      	* libcp1plugin.cc (plugin_build_decl): Use ovl_op_identifier.
      	Directly set operator code.
      	(plugin_build_dependent_expr): Use ovl_op_identifier.
      
      From-SVN: r254267
      Nathan Sidwell committed
    • [BRIGFE] Fix PR 82771. · f6a35e89
      From-SVN: r254265
      Henry Linjamäki committed
    • Remove semicolon after do {} while (false) in HSA_LOG · 12e9c8ce
      2017-10-31  Tom de Vries  <tom@codesourcery.com>
      
      	* plugin/plugin-hsa.c (HSA_LOG): Remove semicolon after
      	"do {} while (false)".
      	(init_single_kernel, GOMP_OFFLOAD_async_run): Add missing semicolon
      	after HSA_DEBUG call.
      
      From-SVN: r254264
      Tom de Vries committed
    • [C++ PATCH] overloaded operator fns [1/N] · 137073d3
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg02315.html
      	* cp-tree.h (assign_op_identifier, call_op_identifier): Define.
      	(LAMBDA_FUNCTION_P): Use DECL_OVERLOADED_OPERATOR_IS.
      	(DECL_OVERLOADED_OPERATOR_P): Just retuurn true/false.
      	(DECL_OVERLOADED_OPERATOR_CODE, DECL_OVERLOADED_OPERATOR_IS): Define.
      	* call.c (add_function_candidate): Use
      	DECL_OVERLOADED_OPERATOR_IS.
      	(build_op_call_1): Use call_op_identifier &
      	DECL_OVERLOADED_OPERATOR_IS.
      	(build_over_call): Likewise.
      	(has_trivial_copy_assign_p): Use assign_op_identifier.
      	(build_special_member_call): Likewise.
      	* class.c (dfs_declare_virt_assop_and_dtor): Likewise.
      	(vbase_has_user_provided_move_assign,
      	classtype_has_move_assign_or_move_ctor_p): Likewise.
      	* decl.c (duplicate_decls): Use DECL_OVERLOADED_OPERATOR_CODE.
      	(grok_special_member_properties): Use assign_op_identifier.
      	(start_preparsed_function): Use DECL_OVERLOADED_OPERATOR_IS.
      	* decl2.c (mark_used): Use DECL_CONV_FN_P.
      	* dump.c (dump_access): Delete prototype.
      	(dump_op): Delete.
      	(cp_dump_tree): Don't call it.
      	* lambda.c (lambda_function): Use call_op_identifier.
      	(maybe_add_lambda_conv_op): Not an overloaded operator.  Remove
      	unneeded braces.
      	* mangle.c (write_unqualified_name): Use DECL_OVERLOADED_OPERTOR_CODE.
      	* method.c (do_build_copy_assign): Use assign_op_identifier.
      	(synthesize_method): Use DECL_OVERLOADED_OPERATOR_IS.
      	(get_copy_assign): Use assign_op_identifier.
      	(synthesized_method_walk): Likewise.
      	(defaultable_fn_check): Use DECL_OVERLOADED_OPERATOR_IS.
      	* parser.c (cp_parser_lambda_declarator_opt): Use
      	call_op_identifier.
      	* semanitics.c (classtype_has_nothrow_assign_or_copy_p): Use
      	assign_op_identifier.
      	* tree.c (special_function_p):  Use DECL_OVERLOADED_OPERATOR_IS.
      	* typeck.c (check_return_expr): Use DECL_OVERLOADED_OPERATOR_CODE.
      	(check_return_expr): Use assign_op_identifier.
      
      From-SVN: r254263
      Nathan Sidwell committed
    • GCOV: std::vector refactoring III · 8a3f457f
      2017-10-31  Martin Liska  <mliska@suse.cz>
      
      	* gcov.c (struct name_map): do not use typedef.
      	Define operator== and operator<.
      	(name_search): Remove.
      	(name_sort): Remove.
      	(main): Do not allocate names.
      	(process_file): Add vertical space.
      	(generate_results): Use std::find.
      	(release_structures): Do not release memory.
      	(find_source): Use std::find.
      
      From-SVN: r254262
      Martin Liska committed
    • GCOV: Vector refactoring II · 4695d816
      2017-10-31  Martin Liska  <mliska@suse.cz>
      
      	* gcov.c (struct line_info): Remove it's typedef.
      	(line_info::line_info): Add proper ctor.
      	(line_info::has_block): Do not use a typedef.
      	(struct source_info): Do not use typedef.
      	(circuit): Likewise.
      	(get_cycles_count): Likewise.
      	(output_intermediate_file): Iterate via vector iterator.
      	(add_line_counts): Use std::vector methods.
      	(accumulate_line_counts): Likewise.
      	(output_lines): Likewise.
      
      From-SVN: r254261
      Martin Liska committed
    • GCOV: std::vector refactoring. · c7432e76
      2017-10-31  Martin Liska  <mliska@suse.cz>
      
      	* gcov.c (struct source_info): Remove typedef.
      	(source_info::source_info): Add proper ctor.
      	(accumulate_line_counts): Use struct, not it's typedef.
      	(output_gcov_file): Likewise.
      	(output_lines): Likewise.
      	(main): Do not allocate an array.
      	(output_intermediate_file): Use size of vector container.
      	(process_file): Resize the vector.
      	(generate_results): Do not preallocate, use newly added vector
      	lines.
      	(release_structures): Do not release sources.
      	(find_source): Use vector methods.
      	(add_line_counts): Do not use typedef.
      
      From-SVN: r254260
      Martin Liska committed
    • GCOV: add support for lines with an unexecuted lines. · cdb07de7
      2017-10-31  Martin Liska  <mliska@suse.cz>
      
      	* doc/gcov.texi: Document that.
      	* gcov.c (add_line_counts): Mark lines with a non-executed
      	statement.
      	(output_line_beginning): Handle such lines.
      	(output_lines): Pass new argument.
      	(output_intermediate_file): Print it in intermediate format.
      2017-10-31  Martin Liska  <mliska@suse.cz>
      
      	* g++.dg/gcov/ternary.C: New test.
      	* g++.dg/gcov/gcov-threads-1.C (main): Update expected line
      	count.
      	* lib/gcov.exp: Support new format for intermediate file format.
      
      From-SVN: r254259
      Martin Liska committed
    • GCOV: introduce usage of terminal colors. · 28f4a4a8
      2017-10-31  Martin Liska  <mliska@suse.cz>
      
      	* color-macros.h: New file.
      	* diagnostic-color.c: Factor out color related to macros to
      	color-macros.h.
      	* doc/gcov.texi: Document -k option.
      	* gcov.c (INCLUDE_STRING): Include string.h.
      	(print_usage): Add -k option.
      	(process_args): Parse it.
      	(pad_count_string): New function.
      	(output_line_beginning): Likewise.
      	(DEFAULT_LINE_START): New macro.
      	(output_lines): Support color output.
      
      From-SVN: r254258
      Martin Liska committed
    • GCOV: document behavior of -fkeep-{static,inline}-functions (PR gcov-profile/82633). · 00da60d4
      2017-10-31  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/82633
      	* doc/gcov.texi: Document -fkeep-{static,inline}-functions and
      	their interaction with GCOV infrastructure.
      	* configure.ac: Add -fkeep-{inline,static}-functions to
      	coverage_flags.
      	* configure: Regenerate.
      
      From-SVN: r254257
      Martin Liska committed
    • re PR target/82772 (GCC crashes as compiling ags_thread.c source file on alpha architecture) · 00ca3ed2
      	PR target/82772
      	* config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
      
      From-SVN: r254253
      Uros Bizjak committed
    • Subject: [PATCH] rs6000: Fix crash with big stack clash interval (PR82674) · c705e5a3
      If the user asks for a stack clash probe interval of 64kB, we currently
      generate a "stdu rX,-65536(r1)" instruction.  That instruction does not
      exist (the offset is a 16-bit signed number).  If the offset is too big
      we should force it into a register and generate a "stdux rX,rY,r1"
      instruction, instead.
      
      
      	PR target/82674
      	* config/rs6000/rs6000.md (allocate_stack): Force update interval
      	into a register if it does not fit into an immediate offset field.
      
      From-SVN: r254252
      Segher Boessenkool committed
    • Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well. · 4db58158
      2017-10-31  Olivier Hainque  <hainque@adacore.com>
      
              * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
      
      From-SVN: r254251
      Olivier Hainque committed
    • GFNI enabling [2/4] · 9d54607a
      gcc/
      	* config.gcc: Add gfniintrin.h.
      	* config/i386/gfniintrin.h: New.
      	* config/i386/i386-builtin-types.def (
      	__builtin_ia32_vgf2p8affineinvqb_v64qi,
      	__builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
      	__builtin_ia32_vgf2p8affineinvqb_v32qi
      	__builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
      	__builtin_ia32_vgf2p8affineinvqb_v16qi,
      	__builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
      	* config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
      	V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
      	V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
      	V64QI_FTYPE_V64QI_V64QI_INT): New types.
      	* config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
      	* config/i386/immintrin.h: Include gfniintrin.h.
      	* config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.
      
      gcc/testsuite/
      	* gcc.target/i386/avx-1.c: Handle new intrinsics.
      	* gcc.target/i386/avx512-check.h: Check GFNI bit.
      	* gcc.target/i386/avx512f-gf2p8affineinvqb-2.c: Runtime test.
      	* gcc.target/i386/avx512vl-gf2p8affineinvqb-2.c: Runtime test.
      	* gcc.target/i386/gfni-1.c: New.
      	* gcc.target/i386/gfni-2.c: New.
      	* gcc.target/i386/gfni-3.c: New.
      	* gcc.target/i386/gfni-4.c: New.
      	* gcc.target/i386/i386.exp: (check_effective_target_gfni): New.
      	* gcc.target/i386/sse-12.c: Handle new intrinsics.
      	* gcc.target/i386/sse-13.c: Ditto.
      	* gcc.target/i386/sse-14.c: Ditto.
      	* gcc.target/i386/sse-22.c: Ditto.
      	* gcc.target/i386/sse-23.c: Ditto.
      	* g++.dg/other/i386-2.C: Ditto.
      	* g++.dg/other/i386-3.C: Ditto.
      
      From-SVN: r254250
      Julia Koval committed
    • Daily bump. · 16e6821a
      From-SVN: r254249
      GCC Administrator committed
  3. 30 Oct, 2017 8 commits
    • * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge. · 5bc86b59
      From-SVN: r254246
      Eric Botcazou committed
    • re PR c++/67595 (concepts code causes segfault) · 77efd154
      2017-10-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/67595
      	* g++.dg/concepts/pr67595.C: New.
      
      From-SVN: r254245
      Paolo Carlini committed
    • re PR libfortran/80850 (Sourced allocate() fails to allocate a pointer) · 59d7953a
      2017-10-30  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/80850
      	* trans_expr.c (gfc_conv_procedure_call): When passing a class
      	argument to an unlimited polymorphic dummy, it is wrong to cast
      	the passed expression as unlimited, unless it is unlimited. The
      	correct way is to assign to each of the fields and set the _len
      	field to zero.
      
      2017-10-30  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/80850
      	* gfortran.dg/class_64_f90 : New test.
      
      From-SVN: r254244
      Paul Thomas committed
    • pr82725.C: Move to ... · 8581ce0a
      	* g++.dg/pr82725.C: Move to ...
      	* g++.dg/cpp0x/pr82725.C: ... here.  Add c++11 target directive.
      
      From-SVN: r254242
      Uros Bizjak committed
    • resolve.c (resolve_transfer): Set derived to correct symbol for BT_CLASS. · 0c51bf96
      2017-10-30  Steven G. Kargl   <kargl@gcc.gnu.org>
      
      	* resolve.c (resolve_transfer): Set derived to correct symbol for 
      	BT_CLASS.
      
      2017-10-30  Steven G. Kargl   <kargl@gcc.gnu.org>
      
      	* gfortran.dg/dtio_13.f90: Remove TODO comment and dg-error test.
      
      From-SVN: r254241
      Steven G. Kargl committed
    • re PR c++/82085 (ICE: Template variable reference used in nested template alias) · bae0ffb5
      /cp
      2017-10-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/82085
      	* pt.c (tsubst_copy_and_build, [INDIRECT_REF]): For a REFERENCE_REF_P,
      	unconditionally call convert_from_reference.
      
      /testsuite
      2017-10-30  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/82085
      	* g++.dg/cpp1y/var-templ56.C: New.
      
      From-SVN: r254239
      Paolo Carlini committed
    • [C++ PATCH] operator name cleanup prepatch · ff630487
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg02240.html
      	cp/
      	* call.c (build_op_call_1): Test for FUNCTION_DECL in same manner
      	as a few lines earlier.
      	* cp-tree.h (PACK_EXPANSION_PATTERN): Fix white space.
      	* decl.c (grokfndecl): Fix indentation.
      	(compute_array_index_type): Use processing_template_decl_sentinel.
      	(grok_op_properties): Move warnings to end.  Reorder other checks
      	to group similar entities.  Tweak diagnostics.
      	* lex.c (unqualified_name_lookup_error): No need to check name is
      	not ERROR_MARK operator.
      	* parser.c (cp_parser_operator): Select operator code before
      	looking it up.
      	* typeck.c (check_return_expr): Fix indentation and line wrapping.
      
      	testsuite/
      
      	* g++.dg/other/operator2.C: Adjust diagnostic.
      	* g++.old-deja/g++.jason/operator.C: Likewise.
      
      From-SVN: r254238
      Nathan Sidwell committed
    • Remove DImode expansions for 1-bit shifts · b832b29f
      A left shift of 1 can always be done using an add, so slightly adjust rtx
      cost for DImode left shift by 1 so that adddi3 is preferred in all cases,
      and the arm_ashldi3_1bit is redundant.
      
      DImode right shifts of 1 are rarely used (6 in total in the GCC binary),
      so there is little benefit of the arm_ashrdi3_1bit and arm_lshrdi3_1bit
      patterns.  The generated code is better and faster without these shifts
      as it allows early expansion, optimization and better register allocation.
      
          gcc/
      	* config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
      	(arm_ashldi3_1bit): Remove pattern.
      	(ashrdi3): Remove shift by 1 expansion.
      	(arm_ashrdi3_1bit): Remove pattern.
      	(lshrdi3): Remove shift by 1 expansion.
      	(arm_lshrdi3_1bit): Remove pattern.
      	* config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
      	cost of ashldi3 by 1.
      	* config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
      	(<shift>di3_neon): Likewise.
      
      From-SVN: r254237
      Wilco Dijkstra committed