<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi Neil<div><br></div><div>This looks like you’re just making Preprocessor and ASTContext behave like FileManager and SourceManager already do. That is, clang already has this:</div><div><br></div><div><div style="margin: 0px; font-size: 11px; font-family: Menlo; min-height: 13px;"><br></div><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(49, 89, 93);"><span style="color: #000000">  </span><span style="color: #bb2ca2">if</span><span style="color: #000000"> (!CI.</span>hasFileManager<span style="color: #000000">())</span></div><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(49, 89, 93);"><span style="color: #000000">    CI.</span>createFileManager<span style="color: #000000">();</span></div><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(49, 89, 93);"><span style="color: #000000">  </span><span style="color: #bb2ca2">if</span><span style="color: #000000"> (!CI.</span>hasSourceManager<span style="color: #000000">())</span></div><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(49, 89, 93);"><span style="color: #000000">    CI.</span>createSourceManager<span style="color: #000000">(CI.</span>getFileManager<span style="color: #000000">());</span></div><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(49, 89, 93);"><span style="color: #000000"><br></span></div><div style="margin: 0px;"><font face="Menlo"><span style="font-size: 11px;">I assume you don’t have commit access.  I’m happy to commit this change if no-one has any objections.</span></font></div><div style="margin: 0px;"><font face="Menlo"><span style="font-size: 11px;"><br></span></font></div><div style="margin: 0px;"><font face="Menlo"><span style="font-size: 11px;">Thanks,</span></font></div><div style="margin: 0px;"><font face="Menlo"><span style="font-size: 11px;">Pete</span></font></div><div><div>On Sep 13, 2013, at 1:59 AM, Neil Henning <<a href="mailto:llvm@neil-henning.co.uk">llvm@neil-henning.co.uk</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
  
    <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
  
  <div text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">There have been no comments/concerns
      raised, so how can I get this committed to trunk?<br>
      <br>
      Thanks for your help,<br>
      -Neil Henning.<br>
      <br>
      On 11/09/2013 10:26, Neil Henning wrote:<br>
    </div>
    <blockquote cite="mid:52303746.6050807@neil-henning.co.uk" type="cite">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.
      <br>
      <br>
      This patch allows a Preprocessor or ASTContext to previously have
      been set.
      <br>
      <br>
      Any comments would be appreciated,
      <br>
      -Neil Henning.
      <br>
      <br>
      Patch (also attached);
      <br>
      <blockquote type="cite">Index: lib/Frontend/FrontendAction.cpp
        <br>
===================================================================
        <br>
        --- lib/Frontend/FrontendAction.cpp    (revision 190499)
        <br>
        +++ lib/Frontend/FrontendAction.cpp    (working copy)
        <br>
        @@ -265,7 +265,8 @@
        <br>
           }
        <br>
        <br>
           // Set up the preprocessor.
        <br>
        -  CI.createPreprocessor();
        <br>
        +  if(!CI.hasPreprocessor())
        <br>
        +    CI.createPreprocessor();
        <br>
        <br>
           // Inform the diagnostic client we are processing a source
        file.
        <br>
           CI.getDiagnosticClient().BeginSourceFile(CI.getLangOpts(),
        <br>
        @@ -279,7 +280,8 @@
        <br>
           // Create the AST context and consumer unless this is a
        preprocessor only
        <br>
           // action.
        <br>
           if (!usesPreprocessorOnly()) {
        <br>
        -    CI.createASTContext();
        <br>
        +    if(!CI.hasASTContext())
        <br>
        +      CI.createASTContext();
        <br>
        <br>
             OwningPtr<ASTConsumer> Consumer(
        <br>
                                            CreateWrappedASTConsumer(CI,
        InputFile));
        <br>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
cfe-commits mailing list
<a class="moz-txt-link-abbreviated" href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a>
</pre>
    </blockquote>
    <br>
  </div>

_______________________________________________<br>cfe-commits mailing list<br><a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits<br></blockquote></div><br></div></body></html>