Modularize Macro and Conditional Checking Proposal (Version 2)

Hi,

This is a request for feedback regarding the design and implementation of a new feature I would like to add to the Modularize tool for finding macro and preprocessor conditional expression expansion instances that are different depending on how a header is included.

The Modularize tool is a tool for checking headers for problems with respect to being used in C++ modules.

The purpose of the feature is to expand the checking that modularize already performs to include checking for macro expansions and preprocessor conditionals that evaluate differently across different compile runs, for the purpose of helping the user find the specific instances that might be problematic with respect to the use of a set of headers with C++ modules.

Please see the following Google document for a high-level write-up: https://docs.google.com/document/d/1dxXKI8r-3NwQDR6Zm-JT9kh-hWrruw8tUKmG9emY8AU/edit?usp=sharing

Please feel to add comments in the document or reply to me and this list.

Thanks.

-John Thompson