marlin
"The function is declared with only one parameter, but in a specific configuration it is called using multiple parameters. The function is called with more arguments than the function's declaration. This happens only if a feature is disabled and another one enabled.
Issue 1770: https://github.com/MarlinFirmware/Marlin/issues/1770 "
Bug fixed by commit 831016b09f7
Type | WrongFunArgNum |
Config | "!ULTRA_LCD && SDSUPPORT" (2nd degree) |
Fix-in | code |
Location | lcd/ |
#include<stdbool.h> #ifdef ULTRA_LCD void lcd_setstatus(const char* message, const bool persist) {}; // more functions #else void lcd_setstatus(const char* message) {}; // more functions #endif #endif void getCode() { #ifdef SDSUPPORT char time[30] = "time_here"; lcd_setstatus(time, true); // ERROR #endif } int main(int argc, char **argv) { getCode(); return 0; }
diff --git a/simple/831016b.c b/simple/831016b.c --- a/simple/831016b.c +++ b/simple/831016b.c @@ -7,7 +7,7 @@ void lcd_setstatus(const char* message, const bool persist) {}; // more functions #else - void lcd_setstatus(const char* message) {}; + void lcd_setstatus(const char* message, const bool persist) {}; // more functions #endif #endif
. call Marlin_main.cpp:698: void get_command() . ERROR: Marlin_main.cpp:849: lcd_setstatus(time, true);