<html><head></head><body><div dir="auto">Could maybe someone try to reproduce this using the gist:<br></div>
<div dir="auto"><a href="http://gist.github.com/MaliusArth/876db831fca43288bfa6fb78ab6921df">gist.github.com/MaliusArth/876db831fca43288bfa6fb78ab6921df</a><br></div>
<div dir="auto">I'm using version 6.0.1.<br></div>
<div dir="auto">Thanks, <br></div>
<div dir="auto">Viktor<br></div>
<div class="gmail_quote" >On Apr 30, 2019, at 20:23, Viktor Was BSc via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div dir="auto">
 I've realized now that the vector is not a Small String equivalent but is a vector of separate char pointers (argv).
 <br>
</div> 
<div dir="auto">
 Still, for some reason executing an EmitLLVMOnlyAction from a clang tool seems to fail for some reason.
 <br>
 <br>
</div> 
<div dir="auto">
 Lldb always exits in CommandLineParser::ParseCommandLineOptions (lib/Support/CommandLine.cpp)
 <br>
</div> 
<div dir="auto">
 Line 1088 (clang 6.0.1):
 <br>
 <br>
</div> 
<div dir="auto">
 'Program Name = sys::path::filename(StringRef(argv[0]));' 
 <br>
 <br>
</div> 
<div dir="auto">
 The error... 
 <br>
 <br>
</div> 
<div dir="auto">
 'Clang: Not enough positional command line arguments specified!' 
 <br>
 <br>
</div> 
<div dir="auto">
 ...makes no sense at this particular line.
 <br>
 <br>
</div> 
<div dir="auto">
 The only usage of EmitLLVMOnlyAction in the llvm/clang repos seems to be in the clang-interpreter example and for some reason it works there.
 <br>
 <br>
</div> 
<div dir="auto">
 Is there some setup missing or present in the ClangTool that screws something up?
 <br>
 <br>
</div> 
<div dir="auto">
 <a href="http://gist.github.com/MaliusArth/876db831fca43288bfa6fb78ab6921df">gist.github.com/MaliusArth/876db831fca43288bfa6fb78ab6921df</a>
 <br>
 <br>
</div> 
<div dir="auto">
 Cheers,
 <br>
</div> 
<div dir="auto">
 Viktor
</div> 
<div class="gmail_quote">
 On Apr 30, 2019, at 03:33, Viktor Was BSc via cfe-dev <
 <a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:
 <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"> 
  <div dir="auto">
   When trying to run an EmitLLVMOnlyAction via ClangTool::run(act_factory) I get the following error:
   <br>
  </div> 
  <div dir="auto">
   Clang: Not enough positional command line arguments specified!
   <br>
   <br>
  </div> 
  <div dir="auto">
   Stepping through the code I found that there seems to be a problem in setCommandLineOpts in clang/lib/CodeGen/BackendUtils.cpp, the BackendArgs.push_back with literals doesn't seem to work and a corrupt SmallVector is passed to ParseCommandLineOptions.
   <br>
  </div> 
  <div dir="auto">
   Why is setCommandLineOpts even called, isn't EmitLLVMOnlyAction supposed to create llvm::Module in memory only without without outputting it to a file? Did I misinterpret the Emit_Nothing flag? What does EmitLLVMOnlyAction do?
   <br>
  </div> 
  <div dir="auto">
   What command line args does EmitLLVMOnlyAction expect?
   <br>
   <br>
  </div> 
  <div dir="auto">
   Cmd line: mytool test.cpp -p=compile_commands.json
   <br>
   <br>
  </div> 
  <div dir="auto">
   Compile_commands:
   <br>
  </div> 
  <div dir="auto">
   {
   <br>
  </div> 
  <div dir="auto">
   "directory":"path/to/build",
   <br>
  </div> 
  <div dir="auto">
   "command": "/usr/local/bin/clang++   -Ipath/to/include - std=c++11 -Wall -o path/to/test.cpp.o -c /path/to/test.cpp",
   <br>
  </div> 
  <div dir="auto">
   "file": "/path/to/test.cpp"
   <br>
  </div> 
  <div dir="auto">
   }
   <br>
   <br>
  </div> 
  <div dir="auto">
   Thanks, 
   <br>
  </div> 
  <div dir="auto">
   Viktor
   <br>
  </div> 
  <pre class="blue">   <hr><br>cfe-dev mailing list<br>cfe-dev@lists.llvm.org<br><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br></pre>
 </blockquote>
</div>
<pre class="blue"> <hr><br>cfe-dev mailing list<br>cfe-dev@lists.llvm.org<br><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br></pre></blockquote></div></body></html>