<div dir="ltr"><div style>Hi,</div><div style><br></div><div style>I'm trying to use python binding to libclang to generate include graphs. I took the example program (bindings/python/examples/cindex/cindex-includes.py) and add support to read a JSON compilation database, therefore I can have include graph for a whole project.</div>
<div style><br></div><div style>Now, I'm running against the Clang project. And it fails... I compiled Clang with itself. Without any problem... My tool read the `compile_commands.json` generated by cmake and pass all arguments (except the compiler and the module). So it supposes to run the same as it was by clang... And this is not happen with any modules, it compiles all LLVM code and the majority of Clang.</div>
<div style><br></div><div style>Any hints how can I fix it? Or make it reproducible for a bug report?</div><div style><br></div><div style>Regards,</div><div style>Laszlo</div><div style><br></div><div style><br></div><div style>
The related JSON file entry looks like this:</div><div style><br></div><div style><div>{</div><div>  "directory": "/home/laszlona/Programming/llvm-svn.src/build/tools/clang/lib/Serialization",</div><div>
  "command": "/home/laszlona/Programming/llvm-svn/usr/local/bin/clang++   -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D_GNU_SOURCE -DCLANG_ENABLE_ARCMT -DCLANG_ENABLE_REWRITER -DCLANG_ENABLE_STATIC_ANALYZER  -fPIC -fvisibility-inlines-hidden -Wno-nested-anon-types -Wcovered-switch-default -fno-common -Woverloaded-virtual -Wcast-qual -fno-strict-aliasing -pedantic -Wno-long-long -Wall -W -Wno-unused-parameter -Wwrite-strings -fno-rtti -O2 -g -I/home/laszlona/Programming/llvm-svn.src/build/tools/clang/lib/Serialization -I/home/laszlona/Programming/llvm-svn.src/tools/clang/lib/Serialization -I/home/laszlona/Programming/llvm-svn.src/tools/clang/include -I/home/laszlona/Programming/llvm-svn.src/build/tools/clang/include -I/home/laszlona/Programming/llvm-svn.src/build/include -I/home/laszlona/Programming/llvm-svn.src/include    -Wall -W -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers -pedantic -Wno-long-long -fno-exceptions -o CMakeFiles/clangSerialization.dir/ASTWriterStmt.cpp.o -c /home/laszlona/Programming/llvm-svn.src/tools/clang/lib/Serialization/ASTWriterStmt.cpp",</div>
<div>  "file": "/home/laszlona/Programming/llvm-svn.src/tools/clang/lib/Serialization/ASTWriterStmt.cpp"</div><div>},</div><div><br></div><div><br></div></div><div style>The error report looks like this:</div>
<div><br></div><div>python: /home/laszlona/Programming/llvm-svn.src/tools/clang/lib/Sema/SemaInit.cpp:3153: clang::OverloadingResult TryRefInitWithConversionFunction(clang::Sema&, const clang::InitializedEntity&, const clang::InitializationKind&, clang::Expr*, bool, clang::InitializationSequence&): Assertion `!S.CompareReferenceRelationship(Initializer->getLocStart(), T1, T2, DerivedToBase, ObjCConversion, ObjCLifetimeConversion) && "Must have incompatible references when binding via conversion"' failed.</div>
<div>libclang: crash detected during parsing: {</div><div>  'source_filename' : '/home/laszlona/Programming/llvm-svn.src/tools/clang/lib/Serialization/ASTWriterStmt.cpp'</div><div>  'command_line_args' : ['-D_GNU_SOURCE', '-D_DEBUG', '-D__STDC_CONSTANT_MACROS', '-D__STDC_FORMAT_MACROS', '-D__STDC_LIMIT_MACROS', '-D_GNU_SOURCE', '-DCLANG_ENABLE_ARCMT', '-DCLANG_ENABLE_REWRITER', '-DCLANG_ENABLE_STATIC_ANALYZER', '-fPIC', '-fvisibility-inlines-hidden', '-Wno-nested-anon-types', '-Wcovered-switch-default', '-fno-common', '-Woverloaded-virtual', '-Wcast-qual', '-fno-strict-aliasing', '-pedantic', '-Wno-long-long', '-Wall', '-W', '-Wno-unused-parameter', '-Wwrite-strings', '-fno-rtti', '-O2', '-g', '-I/home/laszlona/Programming/llvm-svn.src/build/tools/clang/lib/Serialization', '-I/home/laszlona/Programming/llvm-svn.src/tools/clang/lib/Serialization', '-I/home/laszlona/Programming/llvm-svn.src/tools/clang/include', '-I/home/laszlona/Programming/llvm-svn.src/build/tools/clang/include', '-I/home/laszlona/Programming/llvm-svn.src/build/include', '-I/home/laszlona/Programming/llvm-svn.src/include', '-Wall', '-W', '-Wno-unused-parameter', '-Wwrite-strings', '-Wmissing-field-initializers', '-pedantic', '-Wno-long-long', '-fno-exceptions', '-o', 'CMakeFiles/clangSerialization.dir/ASTWriterStmt.cpp.o', '-c'],</div>
<div>  'unsaved_files' : [],</div><div>  'options' : 0,</div><div>}</div><div>Traceback (most recent call last):</div><div>  File "./bin/include_graph_to_gexf.py", line 107, in <module></div>
<div>    pool.apply(compile_module_to_queue, args=(q, m))</div><div>  File "/usr/lib64/python2.7/multiprocessing/pool.py", line 220, in apply</div><div>    return self.apply_async(func, args, kwds).get()</div><div>
  File "/usr/lib64/python2.7/multiprocessing/pool.py", line 528, in get</div><div>    raise self._value</div><div>AssertionError</div><div>Exception ctypes.ArgumentError: "argument 1: <type 'exceptions.AttributeError'>: 'TranslationUnit' object has noProcess Process-2:</div>
<div>Traceback (most recent call last):</div><div>  File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap</div><div>    self.run()</div><div>  File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run</div>
<div>    self._target(*self._args, **self._kwargs)</div><div>  File "./bin/include_graph_to_gexf.py", line 76, in build_graph_from_queue</div><div>    for e in iter(queue.get, 'STOP'):</div><div>  File "<string>", line 2, in get</div>
<div>  File "/usr/lib64/python2.7/multiprocessing/managers.py", line 759, in _callmethod</div><div>    kind, result = conn.recv()</div><div>EOFError</div><div><br></div></div>