Cleanup of libcpp diagnostic callbacks

Programming / Compilers / GCC - dmalcolm [138bc75d-0d04-0410-961f-82ee72b054a4] - 9 October 2018 23:37 EDT

This patch renames the "error" callback within libcpp to "diagnostic", and uses the pair of enums in cpplib.h, rather than passing two different kinds of "int" around.

gcc/c-family/ChangeLog:
- c-common.c (c_option_controlling_cpp_error): Rename to... (c_option_controlling_cpp_diagnostic): ...this, and convert "reason" from int to enum. (c_cpp_error): Rename to... (c_cpp_diagnostic): ...this, converting level and reason to enums.
- c-common.h (c_cpp_error): Rename to... (c_cpp_diagnostic): ...this, converting level and reason to enums.
- c-opts.c (c_common_init_options): Update for renaming.

gcc/fortran/ChangeLog:
- cpp.c (gfc_cpp_init_0): Update for renamings. (cb_cpp_error): Rename to... (cb_cpp_diagnostic): ...this, converting level and reason to enums.

gcc/ChangeLog:
- genmatch.c (error_cb): Rename to... (diagnostic_cb): ...this, converting int params to enums. (fatal_at): Update for renaming. (warning_at): Likewise. (main): Likewise.
- input.c (selftest::ebcdic_execution_charset::apply): Update for renaming of... (selftest::ebcdic_execution_charset::on_error): ...this, renaming to... (selftest::ebcdic_execution_charset::on_diagnostic): ...this, converting level and reason to enums. (class selftest::lexer_error_sink): Rename to... (class selftest::lexer_test_options): ...this, renaming field "m_errors" to "m_diagnostics". (selftest::lexer_test_options::apply): Update for renaming of... (selftest::lexer_test_options::on_error): ...this, renaming to... (selftest::lexer_test_options::on_diagnostic): ...this converting level and reason to enums. (selftest::test_lexer_string_locations_raw_string_unterminated): Update for renamings.
- opth-gen.awk (struct cpp_reason_option_codes_t): Use enum for "reason".

libcpp/ChangeLog:
- charset.c (noop_error_cb): Rename to... (noop_diagnostic_cb): ...this, converting params to enums. (cpp_interpret_string_ranges): Update for renaming and enums.
- directives.c (check_eol_1): Convert reason to enum. (do_diagnostic): Convert code and reason to enum. (do_error): Use CPP_W_NONE rather than 0. (do_pragma_dependency): Likewise.
- errors.c (cpp_diagnostic_at): Convert level and reason to enums. Update for renaming. (cpp_diagnostic): Convert level and reason to enums. (cpp_error): Convert level to enum. (cpp_warning): Convert reason to enums. (cpp_pedwarning): Likewise. (cpp_warning_syshdr): Likewise. (cpp_diagnostic_with_line): Convert level and reason to enums. Update for renaming. (cpp_error_with_line): Convert level to enum. (cpp_warning_with_line): Convert reason to enums. (cpp_pedwarning_with_line): Likewise. (cpp_warning_with_line_syshdr): Likewise. (cpp_error_at): Convert level to enum. (cpp_errno): Likewise. (cpp_errno_filename): Likewise.
- include/cpplib.h (enum cpp_diagnostic_level): Name this enum, and move to before struct cpp_callbacks. (enum cpp_warning_reason): Likewise. (cpp_callbacks::diagnostic): Convert params from int to enums. (cpp_error): Convert int param to enum cpp_diagnostic_level. (cpp_warning): Convert int param to enum cpp_warning_reason. (cpp_pedwarning): Likewise. (cpp_warning_syshdr): Likewise. (cpp_errno): Convert int param to enum cpp_diagnostic_level. (cpp_errno_filename): Likewise. (cpp_error_with_line): Likewise. (cpp_warning_with_line): Convert int param to enum cpp_warning_reason. (cpp_pedwarning_with_line): Likewise. (cpp_warning_with_line_syshdr): Likewise. (cpp_error_at): Convert int param to enum cpp_diagnostic_level.
- macro.c (create_iso_definition): Convert int to enum. (_cpp_create_definition): Likewise.

fb225cf12de Cleanup of libcpp diagnostic callbacks
gcc/ChangeLog | 25 ++++++++
gcc/c-family/ChangeLog | 11 ++++
gcc/c-family/c-common.c | 17 +++---
gcc/c-family/c-common.h | 5 +-
gcc/c-family/c-opts.c | 2 +-
gcc/fortran/ChangeLog | 7 +++
gcc/fortran/cpp.c | 15 +++--
gcc/genmatch.c | 15 ++---
gcc/input.c | 50 +++++++--------
gcc/opth-gen.awk | 6 +-
libcpp/ChangeLog | 44 ++++++++++++++
libcpp/charset.c | 30 ++++-----
libcpp/directives.c | 12 ++--
libcpp/errors.c | 66 +++++++++++---------
libcpp/include/cpplib.h | 158 ++++++++++++++++++++++++++----------------------
libcpp/macro.c | 4 +-
16 files changed, 294 insertions(+), 173 deletions(-)

Upstream: gcc.gnu.org


  • Share