It calls `std::exit(1)` if there are recorded warnings. Seems a surprising and IMHO unclean. Any particular reason for that?