diff options
Diffstat (limited to 'libcpp/errors.cc')
-rw-r--r-- | libcpp/errors.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libcpp/errors.cc b/libcpp/errors.cc index 5d8ceb9..ad45f61 100644 --- a/libcpp/errors.cc +++ b/libcpp/errors.cc @@ -350,3 +350,19 @@ cpp_errno_filename (cpp_reader *pfile, enum cpp_diagnostic_level level, return cpp_error_at (pfile, level, loc, "%s: %s", filename, xstrerror (errno)); } + +cpp_auto_suppress_diagnostics::cpp_auto_suppress_diagnostics (cpp_reader *pfile) + : m_pfile (pfile), m_cb (pfile->cb.diagnostic) +{ + m_pfile->cb.diagnostic + = [] (cpp_reader *, cpp_diagnostic_level, cpp_warning_reason, + rich_location *, const char *, va_list *) + { + return true; + }; +} + +cpp_auto_suppress_diagnostics::~cpp_auto_suppress_diagnostics () +{ + m_pfile->cb.diagnostic = m_cb; +} |