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);