Hi Neil
This looks like you’re just making Preprocessor and ASTContext behave like
FileManager and SourceManager already do. That is, clang already has this:
if (!CI.hasFileManager())
CI.createFileManager();
if (!CI.hasSourceManager())
CI.createSourceManager(CI.getFileManager());
I assume you don’t have commit access. I’m happy to commit this change if
no-one has any objections.
Thanks,
Pete
On Sep 13, 2013, at 1:59 AM, Neil Henning <[email protected]> wrote:
> There have been no comments/concerns raised, so how can I get this committed
> to trunk?
>
> Thanks for your help,
> -Neil Henning.
>
> On 11/09/2013 10:26, Neil Henning wrote:
>> CompilerInvocation can have a previously set FileManager and SourceManager,
>> but not a Preprocessor or ASTContext. This stops Clang drivers from being
>> able to declare their own Preprocessor and ASTContext before calling using
>> FrontendAction's BeginSourceFile to compile.
>>
>> This patch allows a Preprocessor or ASTContext to previously have been set.
>>
>> Any comments would be appreciated,
>> -Neil Henning.
>>
>> Patch (also attached);
>>> Index: lib/Frontend/FrontendAction.cpp
>>> ===================================================================
>>> --- lib/Frontend/FrontendAction.cpp (revision 190499)
>>> +++ lib/Frontend/FrontendAction.cpp (working copy)
>>> @@ -265,7 +265,8 @@
>>> }
>>>
>>> // Set up the preprocessor.
>>> - CI.createPreprocessor();
>>> + if(!CI.hasPreprocessor())
>>> + CI.createPreprocessor();
>>>
>>> // Inform the diagnostic client we are processing a source file.
>>> CI.getDiagnosticClient().BeginSourceFile(CI.getLangOpts(),
>>> @@ -279,7 +280,8 @@
>>> // Create the AST context and consumer unless this is a preprocessor
>>> only
>>> // action.
>>> if (!usesPreprocessorOnly()) {
>>> - CI.createASTContext();
>>> + if(!CI.hasASTContext())
>>> + CI.createASTContext();
>>>
>>> OwningPtr<ASTConsumer> Consumer(
>>> CreateWrappedASTConsumer(CI,
>>> InputFile));
>>
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> [email protected]
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits