[cfe-dev] Some error in clangd

Ilya Biryukov via cfe-dev cfe-dev at lists.llvm.org
Fri Mar 22 02:18:21 PDT 2019


Hi Su,

Since compile_commands.json only contains compile commands for .cpp files,
we use a heuristics-based approach to infer compile commands for headers.
More precisely, based on the path to the header file we try to guess the
best .cpp file for a header (e.g. an implementation file) and pick the
compile command from it.

In your case, we fail to guess a good compile command. I don't know of a
good workaround, unfortunately.
+Sam McCall <sammccall at google.com> is the author of this approach, he might
have ideas on how to fix this.

Is the project you're working on open-source? If so, could you provide a
link to the source code? If not, compilation database should also be enough
to reproduce.


On Thu, Mar 21, 2019 at 10:41 PM yus via cfe-dev <cfe-dev at lists.llvm.org>
wrote:

> Hi,
> I encounter an error in clangd
>
> I[12:49:12.197] Updating file
> /root/workspace/eos4/libraries/chain/include/eosio/chain/types.hpp with
> command* [/root/workspace/eos4/build/libraries/wasm-jit/Source/IR] */usr/bin/clang++-4.0
> -D ENABLE_SIMD_PROTOTYPE=0 -D ENABLE_THREADING_PROTOTYPE=0 -D
> IR_API=DLL_EXPORT -D PRETEND_32BIT_ADDRESS_SPACE=0 -D WAVM_METRICS_OUTPUT=0
> -I /root/workspace/eos4/libraries/wasm-jit/Include -I
> /root/workspace/eos4/libraries/wasm-jit/Include/IR -Wall
> -Wno-invalid-partial-specialization -O3 -D NDEBUG -c -std=gnu++14
> /root/workspace/eos4/libraries/chain/include/eosio/chain/types.hpp
> -resource-dir=/root/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/clang/lib/clang/7.0.0
> V[12:49:12.199] Preamble for file
> /root/workspace/eos4/libraries/chain/include/eosio/chain/types.hpp cannot
> be reused. Attempting to rebuild it.
> V[12:49:12.238] Built preamble of size 213512 for file
> /root/workspace/eos4/libraries/chain/include/eosio/chain/types.hpp
> I[12:49:12.242] Dropped diagnostic outside main file: : too many errors
> emitted, stopping now
>
> some other file in same folder update correctly
>
> I[12:49:03.898] Updating file
> /root/workspace/eos4/libraries/chain/include/eosio/chain/resource_limits.hpp
> with command *[/root/workspace/eos4/build/libraries/chain] */usr/bin/clang++-4.0
> -I /root/workspace/eos4/libraries/chain/include -I
> /root/workspace/eos4/build/libraries/chain/include -I
> /root/workspace/eos4/libraries/chain/../wasm-jit/Include -I
> /root/workspace/eos4/libraries/chain/../../externals/binaryen/src -I
> /root/workspace/eos4/libraries/utilities/include -I
> /root/workspace/eos4/libraries/utilities/../wasm-jit/Include -I
> /root/workspace/eos4/libraries/fc/include -I /root/opt/boost/include -I
> /usr/local/include -I /root/workspace/eos4/libraries/fc/vendor/websocketpp
> -I /root/workspace/eos4/libraries/chainbase/include -I
> /root/workspace/eos4/libraries/wasm-jit/Source/Runtime/../../../chain/include
> -I /root/workspace/eos4/libraries/softfloat/source/include -I
> /root/workspace/eos4/libraries/softfloat/source/8086-SSE -I
> /root/workspace/eos4/libraries/softfloat/build/Linux-x86_64-GCC -I
> /root/workspace/eos4/libraries/builtins -I
> /root/workspace/eos4/libraries/builtins../softfloat/source/include -Wall
> -Wno-invalid-partial-specialization -O3 -D NDEBUG -c -std=gnu++14
> /root/workspace/eos4/libraries/chain/include/eosio/chain/resource_limits.hpp
> -resource-dir=/root/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/clang/lib/clang/7.0.0
> V[12:49:03.901] Preamble for file
> /root/workspace/eos4/libraries/chain/include/eosio/chain/resource_limits.hpp
> cannot be reused. Attempting to rebuild it.
> V[12:49:10.676] <<<
> {"id":"3","jsonrpc":"2.0","method":"textDocument/definition","params":{"position":{"character":51,"line":53},"textDocument":{"uri":"file:///root/workspace/eos4/libraries/chain/include/eosio/chain/resource_limits.hpp"}}}
>
> I don't know why, and what's the difference. why the flags are different.
> How to fix the problem
>
> root at 39470746ee31:~/workspace/eos4# /usr/bin/clang++-4.0 -D
> ENABLE_SIMD_PROTOTYPE=0 -D ENABLE_THREADING_PROTOTYPE=0 -D
> IR_API=DLL_EXPORT -D PRETEND_32BIT_ADDRESS_SPACE=0 -D WAVM_METRICS_OUTPUT=0
> -I /root/workspace/eos4/libraries/wasm-jit/Include -I
> /root/workspace/eos4/libraries/wasm-jit/Include/IR -Wall
> -Wno-invalid-partial-specialization -O3 -D NDEBUG -c -std=gnu++14
> /root/workspace/eos4/libraries/chain/include/eosio/chain/types.hpp
> -resource-dir=/root/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/clang/lib/clang/7.0.0
> /root/workspace/eos4/libraries/chain/include/eosio/chain/types.hpp:6:10:
> fatal error: 'eosio/chain/name.hpp' file not found
> #include <eosio/chain/name.hpp>
>          ^~~~~~~~~~~~~~~~~~~~~~
> 1 error generated.
>
> attach the error and compilation database
>
> Thanks.
>
> Brs
> Su Yu
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>


-- 
Regards,
Ilya Biryukov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20190322/1502c69a/attachment.html>


More information about the cfe-dev mailing list