clangd's database is the one CMake Tools copies from the selected preset, as in libavr, rather than one chip's tree. .gitattributes drops two Studio patterns nothing here matches, .clangd is ASCII, and the comments in it, check.sh and .gitattributes state the reason without the account of how it was found. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
33 lines
1.6 KiB
YAML
33 lines
1.6 KiB
YAML
# Editor accommodations for the second frontend. No compilation database is
|
|
# named here: this driver is made to be vendored, and this file travels with
|
|
# it - a consumer's own database then covers these headers, at the consumer's
|
|
# chip. The checkout that is opened as a folder names its build tree in
|
|
# .vscode/settings.json instead.
|
|
CompileFlags:
|
|
Add:
|
|
# clang has no 24-bit integer and GCC's are keywords, not macros, so the
|
|
# editor needs a stand-in for avr::uint24_t. The next width up is the only
|
|
# one available - clang rejects _BitInt(24) on this target.
|
|
- -D__uint24=unsigned long
|
|
- -D__int24=long
|
|
# clangd forwards the driver's system includes but not its own header
|
|
# directory, so <stdint.h> resolves to avr-libc's, which still gates the
|
|
# limit and constant macros on the C++98 opt-in.
|
|
- -D__STDC_LIMIT_MACROS
|
|
- -D__STDC_CONSTANT_MACROS
|
|
# isr::emit spells a vector number into [[gnu::signal(N)]], which clang
|
|
# rejects rather than ignores - enough of them in one TU to reach the
|
|
# default limit of 19 inside the headers and truncate the parse.
|
|
- -ferror-limit=0
|
|
Remove:
|
|
# The build promotes warnings for the compiler that has to be right about
|
|
# them; in the editor the flag paints a second frontend's opinions in the
|
|
# colour reserved for things that do not compile.
|
|
- -Werror
|
|
Diagnostics:
|
|
Suppress:
|
|
# clang's AVR `signal` attribute takes no arguments and it knows none of
|
|
# progmem, naked or OS_main. A misspelling is what the build is for.
|
|
- attribute_wrong_number_arguments
|
|
- unknown-attributes
|