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

    <tr>
        <th>Summary</th>
        <td>
            seperate source and (header that have a macro) cause clangd to not recognize the macro
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    Using clangd 19.1 with vs code with this folder project..
```
New Folder
|
|------SRC
|       |
|       |------ main.cpp
|
|------Headers
|       |
| |------header.h
|
|------.clangd
```
header.h
```
#define INT int
```
main.cpp
```
#include "header.h"
int main()
{
  INT i = 0;
}
```
.clangd
```
CompileFlags:
  Compiler: clang++ 
 Add: 
  [
    -IHeaders,
    -std=c++23
  ]
```
The project compiled and linked fine with
```
clang++ -IHeaders -std=c++23 SRC/main.cpp
```
So the problem is clangd is not recognizing `INT` preprocessor macro and treating it as undefined class

What i found :
1) the error goes away if the header in the same folder as `main.cpp` or in subfolder in the same folder as `main.cpp`
2) it does not matter if it was `.clangd` or `compille_commands.json`
3) it does not matter the macro if it is function macro or just a text replacement 

Here is clangd output
```
I[23:17:27.442] clangd version 19.1.0
I[23:17:27.449] Features: windows
I[23:17:27.449] PID: 17056
I[23:17:27.449] Working directory: d:\New folder
I[23:17:27.449] argv[0]: D:\Files\LLVM\19.1.0\LLVM\bin\clangd.exe
I[23:17:27.460] Starting LSP over stdin/stdout
I[23:17:27.523] <-- initialize(0)
I[23:17:27.528] --> reply:initialize(0) 5 ms
I[23:17:27.585] <-- initialized
I[23:17:27.656] <-- textDocument/didOpen
I[23:17:27.658] <-- textDocument/documentSymbol(1)
I[23:17:27.660] --> textDocument/publishDiagnostics
I[23:17:27.664] Failed to find compilation database for d:\New folder\SRC\main.cpp
I[23:17:27.664] ASTWorker building file d:\New folder\SRC\main.cpp version 1 with command clangd fallback
[d:\New folder\SRC]
"D:\\Files\\LLVM\\19.1.0\\LLVM\\bin\\clang++" --driver-mode=g++ -IHeaders -std=c++23 "-resource-dir=D:\\Files\\LLVM\\19.1.0\\LLVM\\lib\\clang\\19" -- "d:\\New folder\\SRC\\main.cpp"
I[23:17:27.714] --> textDocument/clangd.fileStatus
I[23:17:27.748] <-- textDocument/codeAction(2)
I[23:17:27.765] Built preamble of size 261232 for file d:\New folder\SRC\main.cpp version 1 in 0.05 seconds
I[23:17:27.767] --> textDocument/clangd.fileStatus
I[23:17:27.767] --> workspace/semanticTokens/refresh(0)
I[23:17:27.767] --> textDocument/clangd.fileStatus
I[23:17:27.796] Indexing c++23 standard library in the context of d:\New folder\SRC\main.cpp
I[23:17:27.802] <-- textDocument/documentLink(3)
I[23:17:27.807] <-- textDocument/inlayHint(4)
I[23:17:27.812] <-- reply(0)
I[23:17:27.813] <-- textDocument/semanticTokens/full(5)
I[23:17:27.858] <-- textDocument/foldingRange(6)
I[23:17:27.869] --> reply:textDocument/foldingRange(6) 11 ms
I[23:17:27.905] <-- textDocument/documentSymbol(7)
E[23:17:27.940] IncludeCleaner: Failed to get an entry for resolved path : no such file or directory
I[23:17:27.953] --> textDocument/publishDiagnostics
I[23:17:27.953] --> textDocument/inactiveRegions
I[23:17:27.953] --> reply:textDocument/documentSymbol(1) 294 ms
I[23:17:27.953] --> reply:textDocument/codeAction(2) 205 ms
I[23:17:27.956] --> reply:textDocument/documentLink(3) 153 ms
I[23:17:27.957] --> reply:textDocument/inlayHint(4) 149 ms
I[23:17:27.957] --> reply:textDocument/semanticTokens/full(5) 143 ms
I[23:17:27.957] --> reply:textDocument/documentSymbol(7) 51 ms
I[23:17:27.957] --> textDocument/clangd.fileStatus
I[23:17:28.226] <-- textDocument/codeAction(8)
I[23:17:28.226] --> reply:textDocument/codeAction(8) 0 ms
I[23:17:28.226] --> textDocument/clangd.fileStatus
I[23:17:28.660] <-- textDocument/hover(9)
E[23:17:28.661] IncludeCleaner: Failed to get an entry for resolved path : no such file or directory
I[23:17:28.663] --> reply:textDocument/hover(9) 2 ms
I[23:17:28.663] --> textDocument/clangd.fileStatus
I[23:17:28.817] <-- textDocument/codeAction(10)
I[23:17:28.817] --> reply:textDocument/codeAction(10) 0 ms
I[23:17:28.818] --> textDocument/clangd.fileStatus
I[23:17:29.497] <-- textDocument/hover(11)
I[23:17:29.498] --> reply:textDocument/hover(11) 1 ms
I[23:17:29.498] --> textDocument/clangd.fileStatus
I[23:17:29.801] <-- textDocument/hover(12)
I[23:17:29.802] --> reply:textDocument/hover(12) 1 ms
I[23:17:29.802] --> textDocument/clangd.fileStatus
I[23:17:34.113] <-- textDocument/inlayHint(13)
I[23:17:34.114] --> reply:textDocument/inlayHint(13) 1 ms
I[23:17:34.114] --> textDocument/clangd.fileStatus
I[23:17:34.754] Indexed c++23 standard library (incomplete due to errors): 15993 symbols, 7594 filtered
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8WVtv2zgW_jXMy4ENibpYevCDY4_RAJ3uoMnuPC5o8dhiI5EGSTlNf_2CujhObCpushijaG2J5-O5fOdClhkjdhJxTpJbkqxuWGNLped_qpLVNfJFWSOPsvBmo_jz_N9GyB0UFZM7DmE-DeFJ2BIOBgrFsfthS2FgqyqOGvZa_cDCTqckWJFgQdKg_9P-_IZPsG4X9q9ny-OXSfu5__7yBLrP6aKXR91yqJmQ02K_9-F9QcZRm1HM4-KyXTwtfWDTzg8XTXsj-_oloRHHrZAId98eQEh7cdUbW84ghCyqhiMQSo-7Udq9FtK2viA0IzQf9L7tvkC3LZBoBQGJbofXq4s7jVm5VPVeVLiu2M6QaDHA9481iRYdVwi9JfQW-vcLzt2bYbXjXf8VYHI3hIguT54ay0m0KjocGr2IXtb5ocSBelB0ynBgkkMl5CNyaH3vyHpR-lTloz5nOoDjJl2PRulege1U2VRYgzBD6ggDUlnQWKidFL9cUpE0uPv2QNIA9hr3WhVojNJQs0KrVnerkVm3UlhgBhrZcYg7TDNQuv3775JZELBVjeRwjEtIaN6qg1orDTuFBtgTewaxbR93JAIh21-G1ThkMTNOu6OlaQCqXWeaTb_iGqFOC-q0EBa42975oGbWOoSte_rUSQ2c63YiadAFscL_FqqumeRm-sMoeQSNPKBOp86BHbwrTI0srFCyf640_GiMBQYWf7qA7CtWYI3SwqlHv6DGk_Cpxu6by1l7RxJH0GgRzki0oLNpHFOSrAbJA2rjdne1c-oXyZ3IGpltNLrMgichuXoy4wJ_3a3c2nAWJOn4yr-VfnRU4kJjYZV-dnIuK0mydFV5e1KVfRhM7w4kuQ1cEkYLWHXSa1GhIcny69f__EmSZW_n8fdGSJIsO2dM8Sf6tkgdLNxbplvKf73_C9QBNRjLXVVbG8vVEIEz6YRGTppEy8kEhBRWsEr8QkKz4FgNLwhlTmgyIdEfLQ-cT86EIYHaF4UkSy5tyz3L0yR9We7Yt1JF45hH6JoL_q89Sq9k5pfsv94_1xtVEZqFfpPTzsudyW9w9s2mEqZcCbaTylhR-KxO07glK2uLrFWuuPK-6rI20zizbMOMqwz6AsmSpaukyfJ1JfXts7h_cORFDZtGVNyRYysqvAL3Jfe6OaUvJUNmbllVbVjx2Gd1cutFHHoOpT3nT2j_wvRT8r962qXAkAVdOyGUwmTCtTigntSKI4lWV7QgQulEo1GNLnDChSbR6kMqVWJzqlK_slPKbcKPoK-8cXTxafSGEeQsgLMw9rKtLwgukveW2cZHtlnsZ76bQBdtbSc0o37Wz9I2TW8bUVnXa1m9qRDUFoz4hUDTkEa0perv80pICKZBAgYLJbnXiHT2eUecYjwp_Wj2rEBXGLFm0oriQT2iNISuNW41mnK8-P1fVMrbenYnOf5sTwlHmhrLJGfajV8bzfTzMC4USrZdV20_XhaygL5bC78K-UhoFvntz4KZF0XIij1_cVM6zeIRiPBEka5_jLo8CyPvlmdB3DaVq-XJCNxIT3AeFXL3ncmd62PpCEqanzfB99EgDP1tMQ-S67vV7KjbH2c4cdDxqz32LCtksjtivLSeHVpgElBa_dymsCuO1QE57Jkt3SgMUoFpirJLbtePjhOQR_sk-nyPHAMRkhVWHPA77oSSVyF4AnOx9QPN45HYXAF7VleBBiNTUN6NNVdpepKYECbRGOjsXdC3eQphnH8OcSwNIYw_qe9F7kMylknJZ6t0NqXUP3W-inTmqxJHjOtZ47Ag8Bn2BvCDhvXD7EXDSnd2IDTLfdXFiYf_eHVxu76ff6fKA_U78RXWB52Yhf4--CqiobezHUGup0cLNsaPLMw-aVo-jXO_aYOLQ-9hyclfOB-O4YA3k9-AfdCgLAjfN8g7B-fD5HSdQfQdg16BfcSgKJ6GIxPRaXEPfYNcixH_VqMIozHD3gJ-0LBZEh8nY-RjgzGhmZDu7FyhReANurrT3tcZZ3O0gDDJ8whM2zMMoUuYJXns6o1FjZdvaW_4POJ5lLMbnIczmtEsn9HkppwHLE2TbYSbbcqDmFOW5JuoyOINjbMsCsMbMacBjcMgmAUZzeJkmmVxsKU0x3SGAeMBiQOsmaimVXWop0rvboQxDc7DMIzi7KZiG6zM8D8Leu5WTTbNzpA4qISx5kXOClvh3OAeNbMI3Zm2vfckNOuvJm3JLJTsgMC66zsXu4I1BodDvFWv7lXx5QbwptHVvLR2315U0zWh652wZbOZFqomdO0U6f-Z9FfHjirOGtf5e4MOc_q_AAAA__8z0RlT">