<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jan 7, 2014 at 1:00 AM, Hal Finkel <span dir="ltr"><<a href="mailto:hfinkel@anl.gov" target="_blank">hfinkel@anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello,<br>
<br>
A colleague of mine gave me some code that used to work (with 3.3), and now does not. The core problem seems to be the way it wants to use the tooling interface with the preprocessor. Here's a reduced portion (that compiles with trunk, but does not work):<br>

<br>
#include "clang/Frontend/CompilerInstance.h"<br>
#include "clang/Frontend/FrontendAction.h"<br>
#include "clang/Frontend/FrontendActions.h"<br>
#include "clang/Tooling/CompilationDatabase.h"<br>
#include "clang/Tooling/CommonOptionsParser.h"<br>
#include "clang/Tooling/Tooling.h"<br>
<br>
using namespace clang::tooling;<br>
using namespace llvm;<br>
<br>
int main()<br>
{<br>
  CommonOptionsParser *_optionsParser;<br>
  const char *argv1[] = { "clang", "/tmp/t.cpp", "--", "-Wall", "-E",  0 };<br>
  int argc1 = (sizeof argv1) / (sizeof *argv1) - 1;  // do not include null at end<br>
  _optionsParser = new CommonOptionsParser(argc1, argv1, cl::GeneralCategory);<br>
  ClangTool Tool(_optionsParser->getCompilations(), _optionsParser->getSourcePathList());<br>
}<br>
<br>
Compiling and running this will produce the error:<br>
LLVM ERROR: Could not auto-detect compilation database for file "/tmp/t.cpp"<br>
No compilation database found in /tmp or any parent directory<br>
json-compilation-database: Error while opening JSON database: No such file or directory<br></blockquote><div><br></div><div>This will not work, as ClangTools don't go through the part of the driver that handles this, but it should give you a different error message.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
while the equivalent code, compiled against 3.3, did not produce this error. If the "-E" is removed from the argv1 array, then the error also goes away. Can someone please help me to figure out what is wrong here?<br>

<br>
Thanks in advance,<br>
Hal<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Hal Finkel<br>
Assistant Computational Scientist<br>
Leadership Computing Facility<br>
Argonne National Laboratory<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>
</font></span></blockquote></div><br></div></div>