Merge pull request #2654 from kugelfuhr/kugelfuhr/fix-2599

Fix missing warning for non void functions without a return statement
This commit is contained in:
Bob Andrews
2025-05-24 16:59:00 +02:00
committed by GitHub

View File

@@ -636,7 +636,9 @@ void NewFunc (SymEntry* Func, FuncDesc* D)
/* If this is the main function in a C99 environment returning an int,
** let it always return zero. Otherwise output a warning.
*/
if (IS_Get (&Standard) >= STD_C99 && GetUnqualRawTypeCode (ReturnType) == T_INT) {
if (F_IsMainFunc (CurrentFunc) &&
IS_Get (&Standard) >= STD_C99 &&
GetUnqualRawTypeCode (ReturnType) == T_INT) {
g_getimmed (CF_INT | CF_CONST, 0, 0);
} else if (IS_Get (&WarnReturnType)) {
Warning ("Control reaches end of non-void function [-Wreturn-type]");