SmingHub / Sming

Sming - powerful open source framework simplifying the creation of embedded C++ applications.
https://sming.readthedocs.io
GNU Lesser General Public License v3.0
1.45k stars 349 forks source link

Fix additional warnings #2849

Closed mikee47 closed 3 days ago

mikee47 commented 3 days ago

Move sanitizers to main build, add BUILD_VARS

Although asan/ubsan aren't supported for embedded targets, there do appear to be more extensive compile-time checks which are useful. Just be nice at the end and don't try to link anything.

Remove Windows esp32 dist directory after installing tools

Saves 750+MB from cache (per image; 2 images).

Build with additional warnings in STRICT, and fix most of them

Switch statements may fall through: use [[falthrough]] for C++. There isn't yet a standard for C, though /* fallthrough */ comments seem to work for some compilers (not all).

Unused parameters. Happens for some code when debug isn't enabled - apply [[maybe_unused]] in C++. For others remove parameter name (C++ only), unless it's useful/descriptive. For C there is no standard, so just using (void) cast statement. Leave those which might mask other issues, such as code which isn't yet implemented. esp-idf has lots of unused parameter warnings; quench those.

Base class X should be explicitly initialized in the copy constructor

Fix 'type qualifiers ignored on function return type'

Fix use of signed/unsigned types

Remove unused code from Wire library

I2Cdev has similar crud but needs far more work. Leave it.

Fix Graphics library bugs

Unused parameter warnings highlighted bugs in Region and SolidBrush classes. Make Region constructor explicit.

muldivMaxValue parameter 1 never used, not required

Update scanlog.py

There are lots of duplicate warnings in logs, so update this tool to de-duplicate and categorise them by source line.

Support scanning logs obtained via github CLI Integrate GH fetch Add Job information Scan warnings, deduplicate and support filtering Add README