[cfe-dev] Some error in clangd

Ilya Biryukov via cfe-dev cfe-dev at lists.llvm.org
Fri Mar 22 07:52:07 PDT 2019


+via clangd-dev <clangd-dev at lists.llvm.org>  for the record

On Fri, Mar 22, 2019 at 1:43 PM Ilya Biryukov <ibiryukov at google.com> wrote:

> On Fri, Mar 22, 2019 at 12:41 PM yus <suyu.nu at gmail.com> wrote:
>
>> Hi,
>>
>> By the way,
>> If a header has no source file (*.cpp), how it been handled.
>>
> In that case we would fallback to something like `clang -xc++ test.hpp`.
> But that almost never happens, our heuristics will always try to pick some
> cpp file first.
> E.g. in the extreme case when compile_commands.json has just a single
> file, we will take the compile command from that file for *all* headers
> we encounter.
>
>
>>
>> Brs,
>> Su Yu
>>
>> yus <suyu.nu at gmail.com> 于2019年3月22日周五 下午7:37写道:
>>
>>> Hi,
>>>
>>> Many thanks for your prompt answer.
>>> It's an open source project.
>>> But it's a little difficult to build. It has many dependency
>>> Hope it can help.
>>> https://github.com/EOSIO/eos
>>>
>>> Thanks.
>>>
>>> Brs,
>>> Su Yu
>>>
>>>
>>>
>>> Ilya Biryukov <ibiryukov at google.com> 于2019年3月22日周五 下午5:18写道:
>>>
>>>> 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
>>>>
>>>
>
> --
> Regards,
> Ilya Biryukov
>


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


More information about the cfe-dev mailing list