MaskRay wrote:

Current behavior with a relative "directory", for reference.

```
proj/compile_commands.json -> build/compile_commands.json
proj/build/compile_commands.json
proj/build/include/config.h
proj/src/a.c                  # #include "config.h"

[{"directory": ".", "arguments": ["clang", "-Iinclude", "-c", "../src/a.c", 
"-o", "a.o"], "file": "../src/a.c"}]
```

Before this patch:

```
$ clang-check -p proj/build proj/src/a.c
Skipping /tmp/t/compdb/proj/src/a.c. Compile command not found.

$ clangd --check=proj/src/a.c
Loaded compilation database from /tmp/t/compdb/proj/compile_commands.json
Generic fallback command is: [/tmp/t/compdb/proj/src] /usr/bin/clang 
-resource-dir=... -- /tmp/t/compdb/proj/src/a.c
[pp_file_not_found] Line 1: 'config.h' file not found
All checks completed, 2 errors
```

After this patch:

```
$ clang-check -p proj/build proj/src/a.c       # exit 0
$ clang-check -p proj proj/src/a.c             # exit 0, via the symlink
$ clangd --check=proj/src/a.c
Compile command from CDB is: [/tmp/t/compdb/proj/build] /usr/bin/clang 
-Iinclude -c -o a.o -resource-dir=... -- /tmp/t/compdb/proj/src/a.c
All checks completed, 0 errors
```

https://github.com/llvm/llvm-project/pull/235400
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to