LGTM I agree with your comment on the last code review that the tests should be refactored to introduce a base class holding the Diagnostics, DirectiveHandler and other objects. https://codereview.appspot.com/6242045/diff/1/tests/preprocessor_tests/versio... File tests/preprocessor_tests/version_test.cpp (right): https://codereview.appspot.com/6242045/diff/1/tests/preprocessor_tests/versio... tests/preprocessor_tests/version_test.cpp:38: // No handlePragma calls. Stale comment?