Fix error reporting in preprocessor

This commit is contained in:
Jonathan Müller 2017-04-08 21:43:41 +02:00
commit a8e2676f36
3 changed files with 3 additions and 9 deletions

View file

@ -8,14 +8,7 @@
#include <cstddef>
#include <cstring>
// treat the tiny-process-library as header only
#include <process.hpp>
#include <process.cpp>
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32)
#include <process_win.cpp>
#else
#include <process_unix.cpp>
#endif
#include <type_safe/flag.hpp>
#include <type_safe/optional.hpp>

View file

@ -13,7 +13,7 @@ using namespace cppast;
bool diagnostic_logger::log(const char* source, const diagnostic& d) const
{
if (d.severity == severity::error)
if (d.severity == severity::error || d.severity == severity::critical)
error_ = true;
else if (!verbose_ && d.severity == severity::debug)
return false;

View file

@ -35,7 +35,8 @@ inline std::unique_ptr<cppast::cpp_file> parse(const cppast::cpp_entity_index& i
stderr_diagnostic_logger logger;
libclang_parser p(type_safe::ref(logger));
auto result = p.parse(idx, name, config);
std::unique_ptr<cppast::cpp_file> result;
REQUIRE_NOTHROW(result = p.parse(idx, name, config));
REQUIRE(!logger.error_logged());
return result;
}