update rp2040 warnings

- remove "-Wno-stringop-overflow -Wno-array-bounds"
- skip -Wconversion for gcc 9 and prior
- suppress_tinyusb_warnings only when building with gcc 9 and below
This commit is contained in:
hathach 2022-06-28 16:27:44 +07:00
parent 83602ea123
commit 898b52be45
4 changed files with 37 additions and 32 deletions

View File

@ -55,17 +55,19 @@ int main(void)
// with Serial0 as all lower case, Serial1 as all upper case // with Serial0 as all lower case, Serial1 as all upper case
static void echo_serial_port(uint8_t itf, uint8_t buf[], uint32_t count) static void echo_serial_port(uint8_t itf, uint8_t buf[], uint32_t count)
{ {
uint8_t const case_diff = 'a' - 'A';
for(uint32_t i=0; i<count; i++) for(uint32_t i=0; i<count; i++)
{ {
if (itf == 0) if (itf == 0)
{ {
// echo back 1st port as lower case // echo back 1st port as lower case
if (isupper(buf[i])) buf[i] = (uint8_t) (buf[i] + 'a' - 'A'); if (isupper(buf[i])) buf[i] += case_diff;
} }
else else
{ {
// echo back 2nd port as upper case // echo back 2nd port as upper case
if (islower(buf[i])) buf[i] = (uint8_t) (buf[i] - 'a' - 'A'); if (islower(buf[i])) buf[i] -= case_diff;
} }
tud_cdc_n_write_char(itf, buf[i]); tud_cdc_n_write_char(itf, buf[i]);

View File

@ -230,7 +230,7 @@ void tud_hid_report_complete_cb(uint8_t instance, uint8_t const* report, uint16_
(void) instance; (void) instance;
(void) len; (void) len;
uint8_t next_report_id = (uint8_t)(report[0] + 1); uint8_t next_report_id = report[0] + 1u;
if (next_report_id < REPORT_ID_COUNT) if (next_report_id < REPORT_ID_COUNT)
{ {

View File

@ -21,5 +21,11 @@ target_compile_options(${PROJECT} PUBLIC
-Wuninitialized -Wuninitialized
-Wunused -Wunused
-Wredundant-decls -Wredundant-decls
)
# GCC version 9 or prior has a bug with incorrect Wconversion warnings
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)
target_compile_options(${PROJECT} PUBLIC
-Wconversion -Wconversion
) )
endif()

View File

@ -235,7 +235,8 @@ if (NOT TARGET _rp2040_family_inclusion_marker)
# This method must be called from the project scope to suppress known warnings in TinyUSB source files # This method must be called from the project scope to suppress known warnings in TinyUSB source files
function(suppress_tinyusb_warnings) function(suppress_tinyusb_warnings)
# some of these are pretty silly warnings only occurring in some older GCC versions # some of these are pretty silly warnings only occurring in some older GCC versions 9 or prior
if (CMAKE_C_COMPILER_VERSION VERSION_LESS 10.0)
set(CONVERSION_WARNING_FILES set(CONVERSION_WARNING_FILES
${PICO_TINYUSB_PATH}/src/tusb.c ${PICO_TINYUSB_PATH}/src/tusb.c
${PICO_TINYUSB_PATH}/src/common/tusb_fifo.c ${PICO_TINYUSB_PATH}/src/common/tusb_fifo.c
@ -259,10 +260,6 @@ if (NOT TARGET _rp2040_family_inclusion_marker)
PROPERTIES PROPERTIES
COMPILE_FLAGS "-Wno-conversion") COMPILE_FLAGS "-Wno-conversion")
endforeach() endforeach()
set_source_files_properties( endif()
${PICO_TINYUSB_PATH}/src/portable/raspberrypi/rp2040/rp2040_usb.c
PROPERTIES
COMPILE_FLAGS "-Wno-stringop-overflow -Wno-array-bounds"
)
endfunction() endfunction()
endif() endif()