llvm / llvm/llvm-project

clangd 23.1.0 crashes while processing C++23 module using Glaze

Open
#224,180 9 comments 0 reactions 0 assignees View on GitHub
clang:modules clangd crash
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

This was originally reported in [clangd/clangd#2707](https://github.com/clangd/clangd/issues/2707)
clangd 23.1.0 crashes while processing a C++23 module-based project that uses Glaze.

The crash occurs in the clangd AST worker while processing `main.cpp`. In the minimal reproducer, calling `glaze::format_error()` after `glaze::read_json()` triggers the crash.

The project compiles successfully with `clang++`, and the crash does not occur when running `clangd --check`. It occurs when clangd is running interactively through the LSP.

I have provided a minimal reproducer repository: [repo](https://github.com/renoseHarsh/bug_report) The repository also contains the clangd crash log.

**System information**

Homebrew clangd version 23.1.0
Features: mac+xpc
Platform: arm64-apple-darwin25.6.0

Editor/LSP plugin: Neovim 0.12.5 built-in LSP

Operating system: macOS 26.6.2 (arm)

The complete clangd log captured with `--log=verbose`, from startup through reproducing the crash, is available here: [lsp.log](https://github.com/user-attachments/files/32315271/lsp.log)

Contributor guide

Open the contributing guide

Research direction

Start with the minimal reproducer repository's main.cpp and compare the interactive LSP crash with clangd --check, then inspect the provided clangd crash log. Reproduce the AST-worker crash triggered by glaze::format_error() after glaze::read_json(); done means clangd remains stable while processing this case.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, neovim
Domain
compilers, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.