1. 30 Jun, 2018 6 commits
    • [9a/n] PR85694: Reorder vect_is_simple_use arguments · 894dd753
      As suggested by Richard B., this patch reorders the arguments to
      vect_is_simple_use so that def_stmt comes last and is optional.
      Many callers can then drop it, making it more obvious which of
      the remaining calls would be affected by the next patch.
      
      2018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vectorizer.h (vect_is_simple_use): Move the gimple ** to the
      	end and default to null.
      	* tree-vect-loop.c (vect_create_epilog_for_reduction)
      	(vectorizable_reduction): Update calls accordingly, dropping the
      	gimple ** argument if the passed-back statement isn't needed.
      	* tree-vect-patterns.c (vect_get_internal_def, type_conversion_p)
      	(vect_recog_rotate_pattern): Likewise.
      	(vect_recog_mask_conversion_pattern): Likewise.
      	* tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
      	(vect_mask_constant_operand_p): Likewise.
      	* tree-vect-stmts.c (is_simple_and_all_uses_invariant, process_use):
      	(vect_model_simple_cost, vect_get_vec_def_for_operand): Likewise.
      	(get_group_load_store_type, get_load_store_type): Likewise.
      	(vect_check_load_store_mask, vect_check_store_rhs): Likewise.
      	(vectorizable_call, vectorizable_simd_clone_call): Likewise.
      	(vectorizable_conversion, vectorizable_assignment): Likewise.
      	(vectorizable_shift, vectorizable_operation): Likewise.
      	(vectorizable_store, vect_is_simple_cond): Likewise.
      	(vectorizable_condition, vectorizable_comparison): Likewise.
      	(get_same_sized_vectype, vect_get_mask_type_for_stmt): Likewise.
      	(vect_is_simple_use): Rename the def_stmt argument to def_stmt_out
      	and move it to the end.  Cope with null def_stmt_outs.
      
      From-SVN: r262272
      Richard Sandiford committed
    • 018-06-30 Bernd Edlinger <bernd.edlinger@hotmail.de> · 55c8e04c
              * Makefile.in (FLAGS_TO_PASS): Add RANLIB_FOR_TARGET.
      
      From-SVN: r262271
      Bernd Edlinger committed
    • [testsuite/guality] Don't use attribute used in pr45882.c for -O0 · 37d0ffd5
      2018-06-30  Tom de Vries  <tdevries@suse.de>
      
      	* gcc.dg/guality/guality.exp (guality_transform_options): New proc.
      	(toplevel): Apply guality_transform_options on DG_TORTURE_OPTIONS and
      	LTO_TORTURE_OPTIONS.
      	* gcc.dg/guality/prevent-optimization.h: New file.
      	* gcc.dg/guality/pr45882.c: Include prevent-optimization.h.
      	(a): Replace __attribute__((used)) with ATTRIBUTE_USED.
      
      From-SVN: r262270
      Tom de Vries committed
    • [testsuite/guality] Use relative line numbers in gdb-test · f269206b
      2018-06-30  Tom de Vries  <tdevries@suse.de>
      
      	* gcc.dg/guality/pr45882.c (foo): Use relative line numbers.
      	* lib/gcc-dg.exp (dg-final): New proc.
      	* lib/gcc-gdb-test.exp (gdb-test): Add and handle additional line number
      	argument.
      
      From-SVN: r262269
      Tom de Vries committed
    • Introduce @unless/@endunless and postbootstrap Makefile targets · da34ca3f
      This patch turns dependencies of non-bootstrap targets on bootstrap
      targets for bootstrap builds into dependencies on stage_last.  This
      arrangement gets stage1-bubble to run from stage_last if we haven't
      started a bootstrap yet, and to use the current stage otherwise.  This
      was already the case of target libs, just not of non-bootstrapped host
      modules.
      
      In order to retain preexisting dependencies in non-bootstrap builds,
      or in gcc-less builds, this introduces support for @unless/@endunless
      pairs in Makefile.in.
      
      There is a remaining possibility of problem if activating, in a tree
      configured for bootstrap, a parallel build of two or more modules, at
      least one bootstrapped and one not.  In this case, make might decide
      to build stage_current and stage_last in parallel, the latter will
      start a submake to build stage1 while the initial make, having
      satisfied stage_current, proceeds to build the bootstrapped module in
      non-bootstrapped configurations.  The two builds will overlap and will
      likely conflict.  This situation does NOT arise in normal settings,
      however: a post-bootstrap build of all-host all-target will indeed
      activate such targets concurrently, but only after building all
      bootstrapped modules successfully, and it will have both stage_last
      and stage_current targets already satisfied, so the potential race
      between builds will not arise.
      
      Another remaining problem, that is slightly expanded with this patch,
      is that of an interrupted build in a tree configured for bootstrap,
      continued with a non-bootstrapped target.  Target modules that were
      not bootstrapped would already fail to complete the current stage when
      activated explicitly in the command line for a retry; host modules,
      however, would attempt to build their bootstrapped dependencies, which
      is what led to the problem of concurrent builds addressed with this
      patch.  An interrupted or failed build might still recover correctly,
      if the non-bootstrapped target is activated in both builds, because
      then make will remove stage_last when its build command is
      interrupted, so that it will attempt to recreate it with stage1-bubble
      in the second try.  A bootstrap build, however, will not be attempting
      to build stage_last, so the file will remain and the retry won't go
      through stage1-bubble.  We have lived with that for target modules, so
      we can probably live with that for host modules too.
      
      Another undesirable consequence of this change is that non-boostrapped
      host modules, in a tree configured for bootstrap, when activated as
      make all-<module>, will build all of stage1 instead of only the
      module's usual dependencies.  This is intentional and necessary to fix
      the parallel-build problem.  If it's not desirable, disabling the
      unnecessary bootstrap configuration will suffice to restore the
      original set of dependencies.
      
      
      for  ChangeLog
      
      	* configure.ac: Introduce support for @unless/@endunless.
      	* Makefile.tpl (dep-kind): Rewrite with cond; return
      	postbootstrap in some cases.
      	(make-postboot-dep, postboot-targets): New.
      	(dependencies): Do not output postbootstrap dependencies at
      	first.  Output non-target ones changed for configure to depend
      	on stage_last @if gcc-bootstrap, and the original deps @unless
      	gcc-bootstrap.
      	* configure.in, Makefile.in: Rebuilt.
      
      From-SVN: r262267
      Alexandre Oliva committed
    • Daily bump. · 6662eec3
      From-SVN: r262266
      GCC Administrator committed
  2. 29 Jun, 2018 13 commits
    • v850.c (v850_legitimate_address_p): Handle large displacements for TARGET_V850E2V3 and newer. · bc5e6ab6
      	* config/v850/v850.c (v850_legitimate_address_p): Handle large
      	displacements for TARGET_V850E2V3 and newer.
      	(TARGET_LRA_P): Remove.  Defaults to LRA now.
      	* config/v850/v850.md (sign23byte_load): Remove.
      	(unsign23byte_load, sign23hword_load, unsign23hword_load): Likewise.
      	(23word_load, 23byte_store, 23hword_store, 23word_store): Likewise.
      
      From-SVN: r262257
      Jeff Law committed
    • strlenopt-46.c: Define strnlen for targets like Solaris 10 that don't define the function. · 0bcf7e67
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/strlenopt-46.c: Define strnlen for targets like Solaris 10
      	that don't define the function.
      
      From-SVN: r262255
      Martin Sebor committed
    • re PR c++/86184 (Conditional expression with omitted operand cannot use rvalue… · dd2a4498
      re PR c++/86184 (Conditional expression with omitted operand cannot use rvalue of type convertible to bool)
      
      	PR c++/86184
      	* tree.c (cp_save_expr): Don't call save_expr for TARGET_EXPRs.
      
      	* g++.dg/ext/cond3.C: New test.
      
      From-SVN: r262254
      Marek Polacek committed
    • When using -fprofile-generate=/some/path mangle absolute path of file (PR lto/85759). · 1f2bb38a
      2018-06-29  Martin Liska  <mliska@suse.cz>
      
      	PR lto/85759
      	* coverage.c (coverage_init): Mangle full path name.
      	* doc/invoke.texi: Document the change.
      	* gcov-io.c (mangle_path): New.
      	* gcov-io.h (mangle_path): Likewise.
      	* gcov.c (mangle_name): Use mangle_path for path mangling.
      
      From-SVN: r262251
      Martin Liska committed
    • [arm] Avoid STRD with odd register for TARGET_ARM in output_move_double · 52057dc4
      In this testcase the user forces an odd register as the starting reg for a DFmode value.
      The output_move_double function tries to store that using an STRD instruction.
      But for TARGET_ARM the starting register of an STRD must be an even one.
      This is always the case with compiler-allocated registers for DFmode values, but the
      inline assembly forced our hand here.
      
      This patch  restricts the STRD-emitting logic in output_move_double to not avoid
      odd-numbered source registers in STRD.
      I'm not a fan of the whole function, we should be exposing a lot of the logic in there
      to RTL rather than at the final output stage, but that would need to be fixed separately.
      
      	* config/arm/arm.c (output_move_double): Don't allow STRD instructions
      	if starting source register is not even.
      
      	* gcc.target/arm/arm-soft-strd-even.c: New test.
      
      From-SVN: r262250
      Kyrylo Tkachov committed
    • contrib: introduce Vim addon directory, add match.pd syntax plugin · b33aa720
      	* vim-gcc-dev/README: New file.
      	* vim-gcc-dev/ftdetect/gcc-dev.vim: New file.
      	* vim-gcc-dev/syntax/gcc-match.vim: New file.
      	* gimple.vim: Move under vim-gcc-dev/syntax/.
      	* gcc-rtl.vim: Likewise.
      
      From-SVN: r262249
      Alexander Monakov committed
    • [testsuite/guality] Use line number vars in gdb-test · 8864590b
      2018-06-29  Tom de Vries  <tdevries@suse.de>
      
      	* gcc.dg/guality/pr45882.c (foo): Add line number var for breakpoint
      	line, and use it.
      	* lib/gcc-dg.exp (get-absolute-line): Factor out of ...
      	(process-message): ... here.
      	* lib/gcc-gdb-test.exp (gdb-test): Use get-absolute-line.
      
      From-SVN: r262248
      Tom de Vries committed
    • Fix bit-test expansion for single cluster (PR tree-optimization/86263). · 3f10efd4
      2018-06-29  Martin Liska  <mliska@suse.cz>
      
              PR tree-optimization/86263
      	* tree-switch-conversion.c (switch_decision_tree::try_switch_expansion):
              Make edge redirection.
      2018-06-29  Martin Liska  <mliska@suse.cz>
      
              PR tree-optimization/86263
      	* gcc.dg/tree-ssa/pr86263.c: New test.
      
      From-SVN: r262247
      Martin Liska committed
    • dumpfile.c: add indentation via DUMP_VECT_SCOPE · 6475e077
      This patch adds a concept of nested "scopes" to dumpfile.c's dump_*_loc
      calls, and wires it up to the DUMP_VECT_SCOPE macro in tree-vectorizer.h,
      so that the nested structure is shown in -fopt-info by indentation.
      
      For example, this converts -fopt-info-all e.g. from:
      
      test.c:8:3: note: === analyzing loop ===
      test.c:8:3: note: === analyze_loop_nest ===
      test.c:8:3: note: === vect_analyze_loop_form ===
      test.c:8:3: note: === get_loop_niters ===
      test.c:8:3: note: symbolic number of iterations is (unsigned int) n_9(D)
      test.c:8:3: note: not vectorized: loop contains function calls or data references that cannot be analyzed
      test.c:8:3: note: vectorized 0 loops in function
      
      to:
      
      test.c:8:3: note: === analyzing loop ===
      test.c:8:3: note:  === analyze_loop_nest ===
      test.c:8:3: note:   === vect_analyze_loop_form ===
      test.c:8:3: note:    === get_loop_niters ===
      test.c:8:3: note:   symbolic number of iterations is (unsigned int) n_9(D)
      test.c:8:3: note:   not vectorized: loop contains function calls or data references that cannot be analyzed
      test.c:8:3: note: vectorized 0 loops in function
      
      showing that the "symbolic number of iterations" message is within
      the "=== analyze_loop_nest ===" (and not within the
      "=== vect_analyze_loop_form ===").
      
      This is also enabling work for followups involving optimization records
      (allowing the records to directly capture the nested structure of the
      dump messages).
      
      gcc/ChangeLog:
      	* dumpfile.c (dump_loc): Add indentation based on scope depth.
      	(dump_scope_depth): New variable.
      	(get_dump_scope_depth): New function.
      	(dump_begin_scope): New function.
      	(dump_end_scope): New function.
      	* dumpfile.h (get_dump_scope_depth): New declaration.
      	(dump_begin_scope): New declaration.
      	(dump_end_scope): New declaration.
      	(class auto_dump_scope): New class.
      	(AUTO_DUMP_SCOPE): New macro.
      	* tree-vectorizer.h (DUMP_VECT_SCOPE): Reimplement in terms of
      	AUTO_DUMP_SCOPE.
      
      From-SVN: r262246
      David Malcolm committed
    • Add whitespace to some dejagnu directives in libstdc++ tests · 6fdce073
      	* testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc:
      	Add whitespace to dejagnu directive.
      	* testsuite/23_containers/array/element_access/at_neg.cc: Likewise.
      
      From-SVN: r262245
      Jonathan Wakely committed
    • tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Assert compute_all_dependences succeeds. · c2fd033c
      2018-06-29  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Assert
      	compute_all_dependences succeeds.
      	* tree-vect-loop.c (vect_get_datarefs_in_loop): Fail early if we
      	exceed --param loop-max-datarefs-for-datadeps.
      
      From-SVN: r262244
      Richard Biener committed
    • * config/rs6000/t-rs6000: Append rs6000-modes.h to TM_H. · 13510152
      From-SVN: r262241
      Jakub Jelinek committed
    • Daily bump. · d0c1b377
      From-SVN: r262240
      GCC Administrator committed
  3. 28 Jun, 2018 21 commits
    • C++: less verbose error-recovery for version conflict markers · eacb16dc
      gcc/cp/ChangeLog:
      	* parser.c (cp_parser_error_1): After issuing a conflict marker
      	error, consume tokens until the end of the source line.
      
      gcc/testsuite/ChangeLog:
      	* g++.dg/conflict-markers-2.C: New test.
      
      From-SVN: r262232
      David Malcolm committed
    • PR c++/86342 - -Wdeprecated-copy and system headers. · b8be1451
      	* decl2.c (cp_warn_deprecated_use): Don't warn about declarations
      	in system headers.
      
      From-SVN: r262231
      Jason Merrill committed
    • p9-extract-1.c: Add test case. · 02fa47a9
      gcc/testsuite/ChangeLog:
      
      2018-06-28  Carl Love  <cel@us.ibm.com>
      
      	* gcc.target/p9-extract-1.c: Add test case.
      	* gcc.target/builtins-3-p9-runnable.c: Add test case to match
      	name in ABI.
      
      From-SVN: r262230
      Carl Love committed
    • re PR target/86348 (ICE: in curr_insn_transform, at lra-constraints.c:3919:… · 81c8283f
      re PR target/86348 (ICE: in curr_insn_transform, at lra-constraints.c:3919: unable to generate reloads for: vec_extractv4si_0_zext_sse4)
      
      	PR target/86348
      	* config/i386/sse.md (*vec_extractv4si_0_zext_sse4): Use
      	alternative 0 in preferred_for_speed attribute.
      
      testsuite/ChangeLog:
      
      	PR target/86348
      	* gcc.target/i386/pr86348.c: New test.
      
      From-SVN: r262228
      Uros Bizjak committed
    • Fix insn length for pdp11 shift patterns. · 9cd1665b
      	* config/pdp11/pdp11-protos.h (pdp11_shift_length): New function.
      	* config/pdp11/pdp11.c (pdp11_shift_length): New function.
      	* config/pdp11/pdp11.h (ADJUST_INSN_LENGTH): Remove.
      	* config/pdp11/pdp11.md: Correct "length" attribute calculation
      	for shift insn patterns.
      
      From-SVN: r262227
      Paul Koning committed
    • re PR go/86343 (types built by GO share TYPE_FIELDS in unsupported way) · a0e8e630
      	PR go/86343
      	* go-gcc.cc (Gcc_backend::set_placeholder_struct_type): Call
      	build_variant_type_copy rather than build_distinct_type_copy.
      
      From-SVN: r262225
      Ian Lance Taylor committed
    • [testsuite] Fix f16_mov_immediate_3.c · 42c5d121
      Fix and simplify the testcase so it generates dup even on latest trunk.
      
          testsuite/
      	* gcc.target/aarch64/f16_mov_immediate_3.c: Fix testcase.
      
      From-SVN: r262222
      Wilco Dijkstra committed
    • re PR fortran/82865 (Option -fdec collides with PDT) · 58b9de9e
      2018-06-28  Fritz Reese  <fritzoreese@gmail.com>
      
          gcc/fortran/ChangeLog:
      
      	PR fortran/82865
      	* decl.c (gfc_match_type): Refactor and check for PDT declarations.
      
          gcc/testsuite/ChangeLog:
      
      	PR fortran/82865
      	* gfortran.dg/dec_type_print_2.f03: New testcase.
      
      From-SVN: r262221
      Fritz Reese committed
    • Hide alt_dump_file within dumpfile.c · 29b54a9d
      This patch removes alt_dump_file from dumpfile.h, making it static
      within dumpfile.c.  This allows for changing how -fopt-info is
      implemented, and potentially adding other kinds of dump target, such
      as remarks or optimization records.
      
      Doing so requires changing the implementation of dump_enabled_p, so
      the patch changes this to a simple lookup of a boolean global, which
      is updated any time dump_file or alt_dump_file change.
      
      gcc/ChangeLog:
      	* cgraph.c (cgraph_node::get_body): Replace assignments to
      	"dump_file" with calls to set_dump_file.
      	* dumpfile.c (alt_dump_file): Make static, and group with...
      	(alt_flags): ...this definition.
      	(dumps_are_enabled): New variable.
      	(refresh_dumps_are_enabled): New function.
      	(set_dump_file): New function.
      	(set_alt_dump_file): New function.
      	(gcc::dump_manager::dump_start): Replace assignments to
      	"dump_file" and "alt_dump_file" with calls to set_dump_file and
      	set_alt_dump_file.
      	(gcc::dump_manager::dump_finish): Likewise.
      	* dumpfile.h (alt_dump_file): Delete decl.
      	(dumps_are_enabled): New variable decl.
      	(set_dump_file): New function decl.
      	(dump_enabled_p): Rewrite in terms of new "dumps_are_enabled"
      	global.
      	* tree-nested.c (lower_nested_functions): Replace assignments to
      	"dump_file" with calls to set_dump_file.
      
      From-SVN: r262220
      David Malcolm committed
    • tree-cfg.c (verify_gimple_in_cfg): Call verify_location on the goto_locus of… · f601629c
      tree-cfg.c (verify_gimple_in_cfg): Call verify_location on the goto_locus of each outgoing edge of each basic block.
      
      	* tree-cfg.c (verify_gimple_in_cfg): Call verify_location on the
      	goto_locus of each outgoing edge of each basic block.
      
      From-SVN: r262219
      Eric Botcazou committed
    • dwarf2out.c (decl_scope_table): Remove. · 291d3f4d
      2018-06-28  Richard Biener  <rguenther@suse.de>
      
      	* dwarf2out.c (decl_scope_table): Remove.
      	(push_decl_scope): Likewise.
      	(pop_decl_scope): Likewise.
      	(gen_type_die_for_member): Do not call push/pop_decl_scope.
      	(gen_struct_or_union_type_die): Likewise.
      	(gen_tagged_type_die): Likewise.
      	(dwarf2out_init): Do not initialize decl_scope_table.
      	(dwarf2out_c_finalize): Do not free it.
      
      From-SVN: r262218
      Richard Biener committed
    • dwarf2out.c (gen_subprogram_die): Use is_unit_die when deciding whether to not re-use a DIE. · 4ece5af3
      2018-06-28  Richard Biener  <rguenther@suse.de>
      
      	* dwarf2out.c (gen_subprogram_die): Use is_unit_die when
      	deciding whether to not re-use a DIE.
      
      From-SVN: r262217
      Richard Biener committed
    • * MAINTAINERS (write after approval): Add myself. · 8e236ddd
      From-SVN: r262216
      Jackson Woodruff committed
    • re PR c/55976 (-Werror=return-type should error on returning a value from a void function) · b62dc9ca
      2018-06-28  David Pagan  <dave.pagan@oracle.com>
      
      	PR c/55976
      	* gcc.dg/noncompile/pr55976-1.c: Add dg-prune-output for extraneous
      	message causing unexpected test FAIL.
      
      From-SVN: r262215
      David Pagan committed
    • Add missing header file inclusion. · 62bb4a4b
      2018-06-28  Martin Liska  <mliska@suse.cz>
      
      	* brigspec.c: Add missing header file inclusion.
      
      From-SVN: r262214
      Martin Liska committed
    • dwarf2out.c (gen_subprogram_die): Always re-use DIEs with an DW_AT_abstract_origin attribute. · 8a731f44
      2018-06-28  Richard Biener  <rguenther@suse.de>
      
      	* dwarf2out.c (gen_subprogram_die): Always re-use DIEs with an
      	DW_AT_abstract_origin attribute.
      
      From-SVN: r262213
      Richard Biener committed
    • Come up with jump_table ratio constants used in jump_table_cluster. · 1aabb71d
      2018-06-28  Martin Liska  <mliska@suse.cz>
      
      	* tree-switch-conversion.c (jump_table_cluster::can_be_handled):
              Use newly introduced constants.
      	* tree-switch-conversion.h (struct jump_table_cluster):
              Define max_ratio_for_size and max_ratio_for_speed.
      
      From-SVN: r262212
      Martin Liska committed
    • Fix clustering algorithm in switch expansion. · df7c7974
      2018-06-28  Martin Liska  <mliska@suse.cz>
      
      	* tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
              Add new checking assert to catch invalid state.
      	(jump_table_cluster::can_be_handled): Handle single case
              clusters.
      	(jump_table_cluster::is_beneficial): Bail out for such case.
      	(bit_test_cluster::find_bit_tests):
              Add new checking assert to catch invalid state.
      	(bit_test_cluster::can_be_handled): Handle single case
              clusters.
      	(bit_test_cluster::is_beneficial): Bail out for such case.
      	(switch_decision_tree::analyze_switch_statement):
              Fix comment.
      2018-06-28  Martin Liska  <mliska@suse.cz>
      
      	* gcc.dg/tree-ssa/switch-1.c: New test.
      
      From-SVN: r262211
      Martin Liska committed
    • Come up with new --completion option. · d86c7648
      2018-06-28  Martin Liska  <mliska@suse.cz>
      
      	* common.opt: Introduce -completion option.
      	* gcc.c (driver_handle_option): Handle it.
      	(driver::main): Print completions if completion
              is set.
      	* opt-suggestions.c (option_proposer::get_completions):
              New function.
      	(option_proposer::suggest_completion): Likewise.
      	(option_proposer::find_param_completions): Likewise.
      	(verify_autocompletions): Likewise.
      	(test_completion_valid_options): Likewise.
      	(test_completion_valid_params): Likewise.
      	(in_completion_p): Likewise.
      	(empty_completion_p): Likewise.
      	(test_completion_partial_match): Likewise.
      	(test_completion_garbage): Likewise.
      	(opt_proposer_c_tests): Likewise.
      	* opt-suggestions.h: Declare new functions.
      	* opts.c (common_handle_option): Handle OPT__completion_.
      	* selftest-run-tests.c (selftest::run_tests): Add
              opt_proposer_c_tests.
      	* selftest.c (assert_str_startswith): New.
      	* selftest.h (assert_str_startswith): Likewise.
      	(opt_proposer_c_tests): New.
      	(ASSERT_STR_STARTSWITH): Likewise.
      
      From-SVN: r262210
      Martin Liska committed
    • Makefile.in: Add opt-suggestions.o. · 98086b2b
      .
      2018-06-28  Martin Liska  <mliska@suse.cz>
      
      	* Makefile.in: Add opt-suggestions.o.
      	* gcc-main.c: Include opt-suggestions.h.
      	* gcc.c (driver::driver): Likewise.
      	(driver::~driver): Remove m_option_suggestions.
      	(driver::build_option_suggestions): Moved to option_proposer.
      	(driver::suggest_option): Likewise.
      	(driver::handle_unrecognized_options): Use option_proposer.
      	* gcc.h (class driver): Add new memver m_option_proposer.
      	* opt-suggestions.c: New file.
      	* opt-suggestions.h: New file.
      2018-06-28  Martin Liska  <mliska@suse.cz>
      
      	* cppspec.c: Include opt-suggestions.h.
      2018-06-28  Martin Liska  <mliska@suse.cz>
      
      	* gfortranspec.c: Include opt-suggestions.h.
      2018-06-28  Martin Liska  <mliska@suse.cz>
      
      	* jit-playback.c: Include opt-suggestions.h.
      
      From-SVN: r262209
      Martin Liska committed