[prev in list] [next in list] [prev in thread] [next in thread] 

List:       llvm-bugs
Subject:    [llvm-bugs] [Bug 59254] [clangd] Wrong compilation flags are chosen for some header files
From:       LLVM Bugs via llvm-bugs <llvm-bugs () lists ! llvm ! org>
Date:       2022-11-29 18:18:56
Message-ID: 20221129181856.225848dc831f351f () email ! llvm ! org
[Download RAW message or body]

[Attachment #2 (text/html)]

<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/59254>59254</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clangd] Wrong compilation flags are chosen for some header files
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Febbe
      </td>
    </tr>
</table>

<pre>
    When having a huge project structure with multiple dependencies and also multiple \
targets, header files, which do not have a main source file, might fail to be \
analyzed via clangd.

This happens, because clangd is choosing a source file, that is completely out of \
context / an independent other target.

For example, the compile_command.json contains sources of:

```
C:\cpm_cache\OpenMesh\*
C:\Users\myuser\Desktop\workspace\my\project\subproject1\include\subproject1\*
C:\Users\myuser\Desktop\workspace\my\project\subproject2\include\subproject2\*
C:\Users\myuser\Desktop\workspace\my\project\subproject1\src\*
C:\Users\myuser\Desktop\workspace\my\project\subproject2\src\*
C:\Users\myuser\Desktop\workspace\my\project\executable\*
```

It might be, that a header, which is located in `subproject1\include\subproject1\` is \
analyzed with compile flags from a source in `C:\cpm_cache\OpenMesh\*` But the header \
is never included in that file. And there is not even the include path appended, \
which refers to the header.

My proposal:
 - Do not pretend to analyze a header file with the compile options of another \
                unrelated source file. 
  - This is the case, when no include in a source file in combination with the \
                include paths refer to the header.
 - Add a warning to a header file, which fails due to too many errors, where the \
                compile commands actually came from.
 - Don&apos;t emit any errors and warnings for unresolved symbols, when the analysis \
                has been stopped due to too many errors.
  - They are nearly all false positives anyway.
 - Change the search direction to source files with a minimal relative path distance.
 

 
</pre>
<img width="1px" height="1px" alt="" \
src="http://email.email.llvm.org/o/eJy1Vk2P2zYQ_TXyhYhhy5bXPvjg7MJAD0EvLXIMKGpsMaFIgUP \
Z6_76PpJaW5umaA8JYEiUSM178_XGtWtu-88tWdHKi7ZnIUU7nEn03n0lFQQHP6gweBJXHVrRDSbo3pBoqCfbk \
FWaWEjbCGnYPbaD9GcKXJTPxeKlWBxakg15cdKG4ktxbbVqReOEdSEiE3A7qa1gN3hF6WA81-lzG8RJaiOCEzW \
OWWluf1EjLloKZaQ9N_MMka9_tJphsAe7BFSTkgPTeFRgU7XOcfb0O7DQypBOuA4-BDI34YYg3AlvbKDXIIryC \
AZC2zf3sRtaOJb9fcfk6LygVxlNZeOUDAPrC-4dYjb_ys4m2_CcRzYMvGJ1mFoqNovxlx6f43b1rPrui5KqJax \
_B5tPxC2WRXl4d-xPJs-4dzeEwWPxQvwtuB6rq_PfuJeK0jYuY9Kx4qEeH5Z40laZoaF_vP_ZWOW_YJW_yC_26 \
hd58TMt0yupIcja0NTkd0WRr7-FsWPqR0GjoVPzPdoOJW6ckgFdhI6Dif-Z7c0ifnrvwCQIY0mLk5FnFifvukd \
fZeP_Xa6w-xF9Fjtk1AnAWLrEReaSiCZvYq_OxQGCE_uO0klICA7bZGD8QPQS5JIM4OuH655OSEHUkgfau679d \
IvS1zuW5t6F4oN4yUrVe8hCxHZvYbiHNzHLMZm0unB90M7GpsYXWSsG68mk6E_0Zy5GLIAlDcMv2ZFMmT4ctO7 \
uH-LxTr_iC2DW2soI-CAyDQhn_3_oPnAPDWRcXKW3UR6jj1PfHkGMcsyiGSgZcpB9aW-CvHd-FPeYmWkURsFD8 \
WCWSANhVbKjVC7zSYxtUT4hl51G1d4tpukykkKFuRxAduYSI3jramf4HqEImjLDaQwwGgFvGT3W4_SPKc-nkae \
bkCBvSXqwBFV4azA_UBE66EsadrervD1oP7eYLNldxldxrGmPlolZANgkR5yzgkmnre6kEakOYDRXa6M5SKvoz \
fS0LMWM9svNZve0rnbVYtbsV81utZOzoIOhfVF9zPOtqF7EZ--QvRz5XAu5N6NbmH2MeMQgsutoml6eDd7s2xB \
6joVfHvE7g-5Qz2ELD8Zc3m4f3sSpPGrmIY70Y7Urq_Ws3W8X1bopNzLe1Gq5XOyUOm2eZIlHKpvtzMiaDEfOR \
VlauopkAmuQn-l9uSjL5bLcLbfLbbWZl2W1XW8btV0tT6tqeSrWC8IfBTOPPObOn2d-nyjVw5mxaRBEfmxKZn22lEIU7cshtM7vj1TXNEvA-0T8b2lUBPw">



[Attachment #3 (text/plain)]

_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic