editor: clangd and cmake work from a committed vscode workspace
The three files libavr's consumers carry, in the leaf-application shape: nothing vendors this repo, so .clangd names the one build tree an editor should read (build/atmega328p-generated) beside the stand-ins clang needs for GCC's AVR dialect; .vscode/settings.json passes --query-driver and names the toolchain prefix for the window that opens this folder. The libavr pin advances to the editor-audit fixes. One residue stays red and is the documented frontend divergence, not a defect: thermistor.hpp's consteval Beta-equation table folds __builtin_log under GCC, which clang refuses to fold in a constant expression -- the same class as libavr's breathe example and its __builtin_cos. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
30
.clangd
Normal file
30
.clangd
Normal file
@@ -0,0 +1,30 @@
|
||||
CompileFlags:
|
||||
# Named here rather than in the editor's settings because nothing vendors
|
||||
# this repo: the one build tree is the one an editor should read.
|
||||
CompilationDatabase: build/atmega328p-generated
|
||||
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
|
||||
Reference in New Issue
Block a user