Proposed change to newFrontendActionFactory() requirements

Hi all,

Currently, newFrontendActionFactory(Arg) requires Arg implement a function called newASTConsumer(). I'd like to change this requirement slightly and have newASTConsumer() take a pointer to a CompilerInstance like this:

ASTConsumer *newASTConsumer(const CompilerInstance *CI);

The goal is to give the created ASTConsumer access to the CompilerInstance and anything it creates, the Preprocessor object in particular. I figured this was useful enough to warrant breaking current users of newASTConsumer. I'll fix any breakages in clang and clang-tools-extra.

Any objections? Any suggestions for alternate implementations? E.g. should I instead provide an alternate function for newFrontendActionFactory()?

I take this back. Patch forthcoming for a less invasive approach.