forked from NVIDIA/cccl
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.clangd
More file actions
113 lines (94 loc) · 2.43 KB
/
.clangd
File metadata and controls
113 lines (94 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# https://clangd.llvm.org/config
# Apply a config conditionally to all C files
If:
PathMatch: .*\.(c|h)$
---
# Apply a config conditionally to all C++ files
If:
PathMatch: .*\.(c|h)pp
---
# Apply a config conditionally to all CUDA files
If:
PathMatch: .*\.cuh?
CompileFlags:
Add:
# Allow variadic CUDA functions
- "-Xclang=-fcuda-allow-variadic-functions"
---
# For __cccl/epilogue.h, force-include prologue.h to avoid spurious errors
If:
PathMatch: ".*libcudacxx/include/cuda/std/__cccl/epilogue[.]h"
CompileFlags:
Add:
- -include
- cuda/std/__cccl/prologue.h
- -Wno-unknown-pragmas
---
# For __cccl/visibility.h, pretend the file has been included from <cuda/__cccl_config>
If:
PathMatch: ".*libcudacxx/include/cuda/std/__cccl/visibility[.]h"
CompileFlags:
Add:
- -D_CUDA__CCCL_CONFIG
---
# For __execution/epilogue.cuh, force-include prologue.cuh to avoid spurious errors
If:
PathMatch: ".*cudax/include/cuda/experimental/__execution/epilogue[.]cuh"
CompileFlags:
Add:
- -include
- cuda/experimental/__execution/prologue.cuh
- -Wno-unknown-pragmas
---
# For libcudacxx test files, add include path to test support headers
If:
PathMatch: ".*libcudacxx/test/.*[.]cpp"
CompileFlags:
Add:
- -I../../../libcudacxx/test/support
---
# Tweak the clangd parse settings for all files
CompileFlags:
Compiler: clang++
CompilationDatabase: .
Add:
- -x
- cuda
- -Wno-unknown-cuda-version
- -Wno-pragma-system-header-outside-header
- --no-cuda-version-check
- -stdlib=libc++
# report all errors
- "-ferror-limit=0"
- "-ftemplate-backtrace-limit=0"
Remove:
- -G
- -stdpar
# strip CUDA fatbin args
- "-Xfatbin*"
- "-Xcompiler*"
- "-Xcudafe*"
- "-rdc=*"
- "-gpu=*"
- "--diag_suppress*"
# strip CUDA arch flags
- "-gencode*"
- "--generate-code*"
# strip gcc's -fcoroutines
- -fcoroutines
# strip CUDA flags unknown to clang
- "-ccbin*"
- "--compiler-options*"
- "--extended-lambda"
- "--expt-extended-lambda"
- "--expt-relaxed-constexpr"
- "-forward-unknown-to-host-compiler"
- "-Werror=cross-execution-space-call"
- "-allow-unsupported-compiler"
Diagnostics:
Suppress:
- "variadic_device_fn"
- "attributes_not_allowed"
# The NVHPC version of _NVCXX_EXPAND_PACK macro triggers this clang error.
# Temporarily suppressing it, but should probably fix
- "template_param_shadow"