FYI, lacking any specific objections, I worked with Manuel to fix some stylistic issues and committed it in r127742. Further comments on the particulars of the implementation welcome.<br><br><div class="gmail_quote">On Wed, Mar 9, 2011 at 6:51 PM, Manuel Klimek <span dir="ltr"><<a href="mailto:klimek@google.com">klimek@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi,<br>
<br>
the attached patch is a proposal to add the "raw path" (== the path<br>
that a file was accessed by in the file manager) into the PPCallback's<br>
InclusionDirective call.<br>
<br>
The problem this solves is that we're trying to replay the compilation<br>
after observing it via PPCallbacks by mapping virtual files into the<br>
cache.<br>
Considering the following example:<br>
<br>
lib/b/b.h:<br>
#include "../a/a.h"<br>
<br>
lib/a/a.h:<br>
int a();<br>
<br>
b.cc:<br>
#include "lib/b/b.h"<br>
#include "lib/a/a.h"<br>
int main() { return 0; }<br>
<br>
When compiled with -Ilib/b, the FileEntry in the InclusionDirective<br>
will have a getName() leading to "lib/b/../a/a.h" for both include<br>
directives of a.h because of inode caching.<br>
When we replay this compilation, we need to inject the raw path under<br>
which the include is looked up, which means that we need to get a.h<br>
into the cache for "./lib/a/a.h".<br>
<br>
Is this an acceptable solution?<br>
Thanks,<br>
<font color="#888888">/Manuel<br>
</font><br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br>