Register of upstream defects mcppls depends on. This body is the index; each comment below is one problem.
Bundled: clangd 23.1.0 (clangd/clangd release). Code workarounds: src/engine/clangd/workarounds.cpp (WA-CLANGD-<n>, listed by mcppls report); deliberate limits: .agents/docs/design.md §7.
Rules: a new problem gets a comment and a row here; adding or removing a workaround updates its comment; link upstream issues/fixes when they exist; walk this list before bumping the bundled clangd.
clangd / LLVM
| ID |
Problem |
Upstream |
mcppls |
| UP-01 |
Module name ending in . hangs the preprocessor (crashes on Windows) |
unfiled; fixed on main? (deferred) |
WA-CLANGD-001; disk check (0.0.5) |
| UP-02 |
Unresolved import can deadlock the unit's build |
unfiled |
WA-CLANGD-002; disk check (0.0.5) |
| UP-03 |
Modules a file needs are built one at a time |
unfiled (perf) |
WA-CLANGD-003 |
| UP-04 |
Finding a module's unit scans the whole database |
unfiled (perf) |
WA-CLANGD-004 |
| UP-05 |
MSVC STL aligned allocation rejected (align_val_t ambiguous) |
fixed in 23.1.1 (llvm-project#218152) |
WA-CLANGD-005 |
| UP-06 |
Stops answering one file while answering others |
unfiled |
quarantine |
| UP-07 |
Stuck with no CPU after rapid module edits |
unfiled |
StuckWatch restart |
| UP-08 |
Background index does not build module imports (definitions indexed apart from their declarations) |
unfiled (gap); cf. clangd/clangd#2569 |
WA-CLANGD-008: implementation units built in the foreground; search by name (0.0.6) |
| UP-09 |
No textDocument/semanticTokens/range |
unfiled (gap) |
capability gated |
| UP-10 |
import std; then an unprovided export import never finishes |
unfiled |
known limit |
| UP-11 |
Module scanning fails on link-phase driver errors |
unfiled |
fixed in mcppls 0.0.5 (-c) |
| UP-12 |
Windows: Build AST crash on a module unit with unresolved imports |
unfiled; needs stack |
avoided by -c; crash file set aside (0.0.5) |
| UP-13 |
Windows: Build AST crash on some units even with correct commands |
unfiled; needs stack |
contained (0.0.5) |
| UP-14 |
Imports added in an unsaved buffer are not built until save |
unfiled |
WA-CLANGD-007; disk check (0.0.5) |
| UP-15 |
Missing ; after import is reported on the next line |
unfiled |
WA-CLANGD-006 (0.0.5) |
| UP-16 |
C++26 contracts and reflection are not implemented |
gap (upstream work in progress) |
documented; VS Code colors contract keywords |
| UP-17 |
A function defined in an open unit is missing from the index (prepare_build) |
unfiled; not reduced yet |
definition found by name (0.0.6) |
mcpp
| ID |
Problem |
Upstream |
mcppls |
| UP-M1 |
mcpp: macOS deployment target ignored when cross-compiling |
fixed (mcpp#685, 2026.9.24.1) |
done in 0.0.5 |
| UP-M2 |
mcpp: emit build-database fails whole on one member's failure |
fixed (mcpp#699, 2026.9.26.2) |
partial answer used; download offer for a missing member (0.0.6) |
| UP-M3 |
mcpp: build programs cannot tell a plan/emit pass |
filed: mcpp#699 |
none |
| UP-M4 |
mcpp: a rule's inputs are translation units; generated output points at an empty directory |
filed: mcpp#724 |
inputs left out; project's target/ read; missing reported (0.0.6) |
| UP-M5 |
mcpp 2026.9.27.1: workspace = true in a path-dependency member fails |
filed: mcpp#725 |
CI pins 2026.9.26.1 |
Register of upstream defects mcppls depends on. This body is the index; each comment below is one problem.
Bundled: clangd 23.1.0 (clangd/clangd release). Code workarounds:
src/engine/clangd/workarounds.cpp(WA-CLANGD-<n>, listed bymcppls report); deliberate limits:.agents/docs/design.md§7.Rules: a new problem gets a comment and a row here; adding or removing a workaround updates its comment; link upstream issues/fixes when they exist; walk this list before bumping the bundled clangd.
clangd / LLVM
.hangs the preprocessor (crashes on Windows)align_val_tambiguous)textDocument/semanticTokens/rangeimport std;then an unprovidedexport importnever finishes-c)-c; crash file set aside (0.0.5);afterimportis reported on the next lineprepare_build)mcpp
emit build-databasefails whole on one member's failuretarget/read; missing reported (0.0.6)workspace = truein a path-dependency member fails