Commit Graph

157172 Commits

Author SHA1 Message Date
David Malcolm
77f4ead72e jit: add a way to preserve testsuite executables
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
2017-10-31 20:40:10 +00:00
David Malcolm
84ffba1283 pt.c: add missing %< and %>
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
2017-10-31 20:30:51 +00:00
David Malcolm
64a5912c9e diagnostics: get rid of *_at_rich_loc in favor of overloading
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
2017-10-31 20:21:58 +00:00
Nathan Sidwell
881c969cf6 [C++ PATCH] overloaded operator fns [5/N]
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
2017-10-31 20:08:51 +00:00
Michael Meissner
c67624232a 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
2017-10-31 18:56:05 +00:00
Nathan Sidwell
6ff16d19d2 [C++ PATCH] overloaded operator fns [4/N]
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
2017-10-31 18:29:08 +00:00
Matthew Fortune
8e02e8a0a5 re PR rtl-optimization/81803 (miscompilation at -O1 on mips64el)
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
2017-10-31 18:27:52 +00:00
Eric Botcazou
e6b6e96a4f re PR ada/82785 (gnat bootstrap fails on m68k-linux-gnu)
PR ada/82785
	* gcc-interface/Makefile.in (m68k/Linux): Fix typo.

From-SVN: r254274
2017-10-31 17:29:26 +00:00
Jason Merrill
e1d74c9131 * gdbinit.in: Skip over inlines from timevar.h.
From-SVN: r254273
2017-10-31 13:13:46 -04:00
Jason Merrill
12d0e3aa63 constexpr.c, pt.c: Adjust comments.
* constexpr.c, pt.c: Adjust comments.

	* g++.dg/cpp1y/lambda-generic-69078-1.C: Remove #include.

From-SVN: r254272
2017-10-31 13:09:09 -04:00
Nathan Sidwell
f26881e300 [C++ PATCH] overloaded operator fns [3/N]
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
2017-10-31 16:27:59 +00:00
James E Wilson
5e36e11e2d Fix fortran build error on AIX.
gcc/fortran/
	* parse.c (unexpected_eof): Call gcc_unreachable before return.

From-SVN: r254270
2017-10-31 09:04:19 -07:00
Martin Liska
29a4ef18ec GCOV: add -j argument (human readable format).
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
2017-10-31 15:31:25 +00:00
Segher Boessenkool
cbb449d1f7 Fix typo in my email, in changelog.
From-SVN: r254268
2017-10-31 16:18:23 +01:00
Nathan Sidwell
88a819bee1 [C++ PATCH] overloaded operator fns [2/N]
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
2017-10-31 14:39:44 +00:00
Henry Linjamäki
f6a35e8954 [BRIGFE] Fix PR 82771.
From-SVN: r254265
2017-10-31 13:00:53 +00:00
Tom de Vries
12e9c8ce6c Remove semicolon after do {} while (false) in HSA_LOG
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
2017-10-31 12:56:41 +00:00
Nathan Sidwell
137073d34a [C++ PATCH] overloaded operator fns [1/N]
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
2017-10-31 12:50:19 +00:00
Martin Liska
8a3f457f14 GCOV: std::vector refactoring III
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
2017-10-31 11:59:32 +00:00
Martin Liska
4695d816a3 GCOV: Vector refactoring II
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
2017-10-31 11:59:14 +00:00
Martin Liska
c7432e7603 GCOV: std::vector refactoring.
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
2017-10-31 11:58:53 +00:00
Martin Liska
cdb07de7c6 GCOV: add support for lines with an unexecuted lines.
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
2017-10-31 11:57:43 +00:00
Martin Liska
28f4a4a85f GCOV: introduce usage of terminal colors.
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
2017-10-31 11:57:10 +00:00
Martin Liska
00da60d4de GCOV: document behavior of -fkeep-{static,inline}-functions (PR gcov-profile/82633).
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
2017-10-31 11:55:19 +00:00
Uros Bizjak
00ca3ed28c re PR target/82772 (GCC crashes as compiling ags_thread.c source file on alpha architecture)
PR target/82772
	* config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".

From-SVN: r254253
2017-10-31 11:33:12 +01:00
Segher Boessenkool
c705e5a3f4 Subject: [PATCH] rs6000: Fix crash with big stack clash interval (PR82674)
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
2017-10-31 10:49:40 +01:00
Olivier Hainque
4db58158cc Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
2017-10-31  Olivier Hainque  <hainque@adacore.com>

        * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.

From-SVN: r254251
2017-10-31 09:09:33 +00:00
Julia Koval
9d54607a02 GFNI enabling [2/4]
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
2017-10-31 06:20:49 +00:00
GCC Administrator
16e6821a52 Daily bump.
From-SVN: r254249
2017-10-31 00:16:14 +00:00
Eric Botcazou
5bc86b5990 * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge.
From-SVN: r254246
2017-10-30 23:19:21 +00:00
Paolo Carlini
77efd154f3 re PR c++/67595 (concepts code causes segfault)
2017-10-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67595
	* g++.dg/concepts/pr67595.C: New.

From-SVN: r254245
2017-10-30 22:41:21 +00:00
Paul Thomas
59d7953a63 re PR libfortran/80850 (Sourced allocate() fails to allocate a pointer)
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
2017-10-30 22:07:25 +00:00
Uros Bizjak
8581ce0a9d pr82725.C: Move to ...
* g++.dg/pr82725.C: Move to ...
	* g++.dg/cpp0x/pr82725.C: ... here.  Add c++11 target directive.

From-SVN: r254242
2017-10-30 21:05:20 +01:00
Steven G. Kargl
0c51bf96b4 resolve.c (resolve_transfer): Set derived to correct symbol for BT_CLASS.
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
2017-10-30 19:33:12 +00:00
Paolo Carlini
bae0ffb560 re PR c++/82085 (ICE: Template variable reference used in nested template alias)
/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
2017-10-30 19:16:29 +00:00
Nathan Sidwell
ff6304874e [C++ PATCH] operator name cleanup prepatch
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
2017-10-30 19:04:53 +00:00
Wilco Dijkstra
b832b29f65 Remove DImode expansions for 1-bit shifts
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
2017-10-30 18:46:02 +00:00
Dominik Infuehr
0d1cf53834 Wrong type-attribute for stp and str
Fix the type attributes of the integer stores in aarch64_simd_mov.

    gcc/
	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
	both identically named patterns to (*aarch64_simd_mov<VD:mode>)
	and (*aarch64_simd_mov<VQ:mode>).
	(*aarch64_simd_mov<VD:mode>): Change type attribute to match
	pattern alternative.
	(*aarch64_simd_mov<VQ:mode>): Re-order and change type
	attributes to match pattern alternative.

From-SVN: r254236
2017-10-30 18:35:32 +00:00
Steven Munroe
daff6cdf8e Part 2/2 for contributing PPC64LE support for X86 SSE2 instrisics.
This patch includes testsuite/gcc.target tests for the intrinsics
in emmintrin.h.  For these tests I added -Wno-psabi to dg-options
to suppress warnings associated with the vector ABI change in GCC5.

From-SVN: r254235
2017-10-30 18:32:07 +00:00
Steven Munroe
09359ea364 Part 1/2 for contributing PPC64LE support for X86 SSE2 instrisics.
Part 1/2 for contributing PPC64LE support for X86 SSE2
instrisics. This patch includes the new (for PPC) emmintrin.h,
changes x86intrin.h to include xmmintrin.h, and associated
config.gcc changes.

From-SVN: r254234
2017-10-30 18:28:36 +00:00
Wilco Dijkstra
1df07b3da8 backport: unnecessary duplication and repeating bugs like PR78439 due to changes being applied only to one of the duplicates.
Merge the movdi_vfp_cortexa8 pattern into movdi_vfp and remove it to avoid
unnecessary duplication and repeating bugs like PR78439 due to changes being
applied only to one of the duplicates.

    gcc/
        * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
        * (movdi_vfp_cortexa8): Remove pattern.

From-SVN: r254233
2017-10-30 18:01:59 +00:00
Rainer Orth
863db6b6b2 Remove Tru64 UNIX and IRIX references in install.texi
* doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
	etc. reference.
	(Specific, alpha*-dec-osf5.1): Remove.
	(Specific, mips-sgi-irix5): Remove.
	(Specific, mips-sgi-irix6): Remove.

From-SVN: r254230
2017-10-30 16:43:40 +00:00
Jonathan Wakely
97b99f9c77 Don't create broken symlink in libstdc++-v3/include/bits
* include/Makefile.am (stamp-bits-sup): Do not create broken symlink
	to stamp-bits.
	* include/Makefile.in: Regenerate.

From-SVN: r254229
2017-10-30 16:28:13 +00:00
Jakub Jelinek
4403d99aef re PR middle-end/22141 (Missing optimization when storing structures)
PR middle-end/22141
	* gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
	arguments to clear_bit_region_be.

From-SVN: r254228
2017-10-30 17:20:24 +01:00
James E Wilson
6b139f0d93 Fix ia64 build failure.
gcc/
	* gimplify.c: Include memmodel.h.

From-SVN: r254227
2017-10-30 08:38:30 -07:00
Jonathan Wakely
0a6e98b78b Remove ios_mode::trunc from basic_ofstream openmode arguments
* include/std/fstream (basic_ifstream, basic_ofstream, basic_fstream):
	Remove outdated comments about calling c_str() to create a file stream
	from a std::string.
	(basic_ofstream::basic_ofstream, basic_ofstream::open): Remove
	redundant ios_mode::trunc bits from default arguments and comments.

From-SVN: r254226
2017-10-30 15:35:02 +00:00
Martin Jambor
791929c91a [hsa] Add missing guard in OMP gridification
2017-10-30  Martin Jambor  <mjambor@suse.cz>

	* omp-grid.c (grid_attempt_target_gridification): Also insert a
	condition whether loop should be executed at all.

From-SVN: r254225
2017-10-30 16:07:20 +01:00
Jonathan Wakely
932bfa9bc7 Minor tweak to libstdc++ FAQ
* doc/xml/faq.xml: Adjust "What is libstdc++?" answer slightly.

From-SVN: r254224
2017-10-30 14:56:23 +00:00
Jonathan Wakely
02a2c6303f Minor header reorganization for unordered containers
* include/bits/hashtable_policy.h: Include <tuple>.
	* include/std/unordered_map: Only include <bits/stl_pair.h> instead
	of <utility> and <tuple>.
	* include/std/unordered_set: Likewise.

From-SVN: r254223
2017-10-30 14:54:28 +00:00
Ville Voutilainen
ccbbf8df05 Implement LWG 2485
* include/debug/array (get(const array<_Tp, _Nm>&&)): New.
* include/std/array (get(const array<_Tp, _Nm>&&)): Likewise.
* include/std/tuple (get(const tuple<_Elements...>&&)): Likewise.
(get(const tuple<_Types...>&&)): Likewise.
* include/std/utility
(__pair_get::__const_move_get(const std::pair<_Tp1, _Tp2>&&)):
Likewise.
(get(const std::pair<_Tp1, _Tp2>&&)): Likewise.
(get(const pair<_Tp, _Up>&&)): Likewise.
(get(const pair<_Up, _Tp>&&)): Likewise.
* testsuite/20_util/pair/astuple/get.cc: Add tests for
new overloads.
* testsuite/20_util/pair/astuple/get_by_type.cc: Likewise.
* testsuite/20_util/tuple/element_access/get2.cc: Likewise.
* testsuite/20_util/tuple/element_access/get2_by_type.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/get.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc:
Adjust.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.

From-SVN: r254222
2017-10-30 16:31:04 +02:00