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
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
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 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
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
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 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 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 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 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 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 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 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
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-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 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
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
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
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
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
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
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
* 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 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
* 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