Implement Levenshtein distance; use in C FE for misspelled field names
This is the combination of:
[PATCH 1/2] Implement Levenshtein distance
[PATCH 2/2] C FE: suggest corrections for misspelled field names
plus some nit fixes in spellcheck.c.
gcc/ChangeLog:
* Makefile.in (OBJS): Add spellcheck.o.
* spellcheck.c: New file.
* spellcheck.h: New file.
gcc/c/ChangeLog:
* c-typeck.c: Include spellcheck.h.
(lookup_field_fuzzy_find_candidates): New function.
(lookup_field_fuzzy): New function.
(build_component_ref): If the field was not found, try using
lookup_field_fuzzy and potentially offer a suggestion.
gcc/testsuite/ChangeLog:
* gcc.dg/plugin/levenshtein-test-1.c: New file.
* gcc.dg/plugin/levenshtein_plugin.c: New file.
* gcc.dg/plugin/plugin.exp (plugin_test_list): Add
levenshtein_plugin.c.
* gcc.dg/spellcheck-fields.c: New file.
From-SVN: r230284