<div dir="ltr">Looks pretty good, but I think the include order is slightly off.  It looks like we push the last includer, and then the include stack from outermost to innermost rather than innermost to outermost.  Can you add a test to make sure we get it right?<div>
<br></div><div>This is the case I'm thinking of:</div><div>t.cpp #include "a/foo.h"<br></div><div>a/foo.h #include "b/foo.h"</div><div>a/b/foo.h #include "c/foo.h"</div><div>a/b/c/foo.h #include "bar.h"</div>
<div>a/b/bar.h // Should find me</div><div>a/bar.h #error "not me"<div><br></div><div><div>+  // If the header lookup mechanism may be relative to the current inclusion</div><div>+  // stack,</div><div>+  // record the parent #includes.</div>
</div><div><br></div>
<div>This comment can be reflowed.  clang-format doesn't yet know how to reflow comments in the right place.</div><div><br></div><div>You can also request commit access if you want, or keep sending patches.</div><div>
<a href="http://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access">http://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access</a></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Sat, Dec 14, 2013 at 5:44 AM, Will Wilson <span dir="ltr"><<a href="mailto:will@indefiant.com" target="_blank">will@indefiant.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hi All,
<div><br></div><div>Here's a patch to implement the MSVC header search algorithm for quoted #includes. MSVC doesn't just search the #includer's directory (the existing clang/GCC behaviour) but also searches the directories of all parent includers before falling back on the standard search paths. I implemented this after being bitten a few times by clang including different files to MSVC within existing MSVC targeted codebases.</div>

<div><br></div><div>This MSVC algoritihm is outlined here: <a href="http://msdn.microsoft.com/en-us/library/36k2cdd4.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/36k2cdd4.aspx</a></div><div><br></div><div>
The patch has been clang-formatted and I've also included a test case for validation of the algorithm. I've attempted to minimize the size of the change and tried to ensure that only MicrosoftMode will pay any performance penalty (and even then only a small one).</div>

<div><br></div><div>Review away!</div><div><br></div><div>Cheers,</div><div>Will.</div></div>
<br>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
<br></blockquote></div><br></div>