diff options
author | QMK Bot <[email protected]> | 2025-06-15 01:56:45 +0000 |
---|---|---|
committer | QMK Bot <[email protected]> | 2025-06-15 01:56:45 +0000 |
commit | 02bed7e5a5624a8ca3818c110017536b681a85e3 (patch) | |
tree | 8d11d0865f13bfce642a0518262ba78e4e1845f0 | |
parent | 7919848324076250894542c12adcd6781c99b9d1 (diff) | |
parent | 7f9ceef3dd52066b6349130a93bfc681cd435d68 (diff) | |
download | qmk_firmware-02bed7e5a5624a8ca3818c110017536b681a85e3.tar.gz qmk_firmware-02bed7e5a5624a8ca3818c110017536b681a85e3.zip |
Merge remote-tracking branch 'origin/master' into develop
-rw-r--r-- | .clangd | 35 | ||||
-rwxr-xr-x | lib/python/qmk/compilation_database.py | 13 | ||||
-rw-r--r-- | platforms/avr/_wait.h | 2 |
3 files changed, 42 insertions, 8 deletions
@@ -1,4 +1,33 @@ CompileFlags: - Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option] - Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues, -D__has_include*] - Compiler: clang + Add: + [ + -Wno-unknown-attributes, + -Wno-maybe-uninitialized, + -Wno-unknown-warning-option, + -Wno-pointer-to-int-cast, + -Wno-int-to-void-pointer-cast, + -DPROGMEM=, + ] + Remove: + [ + -W*, + -mmcu=*, + -mcpu=*, + -mfpu=*, + -mfloat-abi=*, + -mno-unaligned-access, + -mno-thumb-interwork, + -mcall-prologues, + -D__has_include*, + -mlra, + ] + Compiler: clang +Diagnostics: + UnusedIncludes: None + Suppress: + [ + asm_invalid_output_constraint, + asm_invalid_input_constraint, + invalid_asm_value_for_constraint, + anyx86_interrupt_attribute, + ] diff --git a/lib/python/qmk/compilation_database.py b/lib/python/qmk/compilation_database.py index c403297405..851dc3f157 100755 --- a/lib/python/qmk/compilation_database.py +++ b/lib/python/qmk/compilation_database.py @@ -44,8 +44,7 @@ def cpu_defines(binary: str, compiler_args: str) -> List[str]: invocation.extend(['-x', 'c', '-std=gnu11']) elif binary.endswith("g++"): invocation.extend(['-x', 'c++', '-std=gnu++14']) - compiler_args = shlex.split(compiler_args) - invocation.extend(compiler_args) + invocation.extend(shlex.split(compiler_args)) invocation.append('-') result = cli.run(invocation, capture_output=True, check=True, stdin=None, input='\n') define_args = [] @@ -55,7 +54,11 @@ def cpu_defines(binary: str, compiler_args: str) -> List[str]: define_args.append(f'-D{line_args[1]}={line_args[2]}') elif len(line_args) == 2 and line_args[0] == '#define': define_args.append(f'-D{line_args[1]}') - return list(sorted(set(define_args))) + + type_filter = re.compile( + r'^-D__(SIZE|INT|UINT|WINT|WCHAR|BYTE|SHRT|SIG|FLOAT|LONG|CHAR|SCHAR|DBL|FLT|LDBL|PTRDIFF|QQ|DQ|DA|HA|HQ|SA|SQ|TA|TQ|UDA|UDQ|UHA|UHQ|USQ|USA|UTQ|UTA|UQQ|UQA|ACCUM|FRACT|UACCUM|UFRACT|LACCUM|LFRACT|ULACCUM|ULFRACT|LLACCUM|LLFRACT|ULLACCUM|ULLFRACT|SACCUM|SFRACT|USACCUM|USFRACT)' + ) + return list(sorted(set(filter(lambda x: not type_filter.match(x), define_args)))) return [] @@ -92,8 +95,8 @@ def parse_make_n(f: Iterator[str]) -> List[Dict[str, str]]: for s in system_libs(binary): args += ['-isystem', '%s' % s] args.extend(cpu_defines(binary, ' '.join(shlex.quote(s) for s in compiler_args))) - new_cmd = ' '.join(shlex.quote(s) for s in args) - records.append({"directory": str(QMK_FIRMWARE.resolve()), "command": new_cmd, "file": this_file}) + args[0] = binary + records.append({"arguments": args, "directory": str(QMK_FIRMWARE.resolve()), "file": this_file}) state = 'start' return records diff --git a/platforms/avr/_wait.h b/platforms/avr/_wait.h index 39cbf618d2..54f578ace0 100644 --- a/platforms/avr/_wait.h +++ b/platforms/avr/_wait.h @@ -21,6 +21,8 @@ #include <util/delay.h> #pragma GCC diagnostic pop +extern void __builtin_avr_delay_cycles(uint32_t); + // http://ww1.microchip.com/downloads/en/devicedoc/atmel-0856-avr-instruction-set-manual.pdf // page 22: Table 4-2. Arithmetic and Logic Instructions /* |