(In reply to Andreas Nordal from comment #0) > Minimal reproducer: > > /tmp/compile_commands.json: > > [{ > "directory": "/tmp", > "command": "g++ -std=c++17 -Iweird_include -c takes_string_view.cpp -o > takes_string_view.o", > "file": "takes_string_view.o" > }] What if you use clang++ instead of g++? Not sure how clangd reads that file, it might ignore some flags if the compiler isn't clang, as GCC and Clang flags aren't fully compatible. If that doesn't work, please try passing --log=info or --log=verbose to clangd itself (not via compile_commands.json), maybe that gives us more information.