return-type - new warning suppression type added
This commit is contained in:
@@ -74,6 +74,7 @@ IntStack WarnUnknownPragma = INTSTACK(1); /* - unknown #pragmas */
|
|||||||
IntStack WarnUnusedLabel = INTSTACK(1); /* - unused labels */
|
IntStack WarnUnusedLabel = INTSTACK(1); /* - unused labels */
|
||||||
IntStack WarnUnusedParam = INTSTACK(1); /* - unused parameters */
|
IntStack WarnUnusedParam = INTSTACK(1); /* - unused parameters */
|
||||||
IntStack WarnUnusedVar = INTSTACK(1); /* - unused variables */
|
IntStack WarnUnusedVar = INTSTACK(1); /* - unused variables */
|
||||||
|
IntStack WarnReturnType = INTSTACK(1); /* - control reaches end of non-void function */
|
||||||
|
|
||||||
/* Map the name of a warning to the intstack that holds its state */
|
/* Map the name of a warning to the intstack that holds its state */
|
||||||
typedef struct WarnMapEntry WarnMapEntry;
|
typedef struct WarnMapEntry WarnMapEntry;
|
||||||
@@ -92,6 +93,7 @@ static WarnMapEntry WarnMap[] = {
|
|||||||
{ &WarnUnusedLabel, "unused-label" },
|
{ &WarnUnusedLabel, "unused-label" },
|
||||||
{ &WarnUnusedParam, "unused-param" },
|
{ &WarnUnusedParam, "unused-param" },
|
||||||
{ &WarnUnusedVar, "unused-var" },
|
{ &WarnUnusedVar, "unused-var" },
|
||||||
|
{ &WarnReturnType, "return-type" },
|
||||||
};
|
};
|
||||||
|
|
||||||
Collection DiagnosticStrBufs;
|
Collection DiagnosticStrBufs;
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ extern IntStack WarnUnknownPragma; /* - unknown #pragmas */
|
|||||||
extern IntStack WarnUnusedLabel; /* - unused labels */
|
extern IntStack WarnUnusedLabel; /* - unused labels */
|
||||||
extern IntStack WarnUnusedParam; /* - unused parameters */
|
extern IntStack WarnUnusedParam; /* - unused parameters */
|
||||||
extern IntStack WarnUnusedVar; /* - unused variables */
|
extern IntStack WarnUnusedVar; /* - unused variables */
|
||||||
|
extern IntStack WarnReturnType; /* - control reaches end of non-void function */
|
||||||
|
|
||||||
/* Forward */
|
/* Forward */
|
||||||
struct StrBuf;
|
struct StrBuf;
|
||||||
|
|||||||
@@ -654,8 +654,8 @@ void NewFunc (SymEntry* Func, FuncDesc* D)
|
|||||||
** environment returning int, output a warning if we didn't see a return
|
** environment returning int, output a warning if we didn't see a return
|
||||||
** statement.
|
** statement.
|
||||||
*/
|
*/
|
||||||
if (!F_HasVoidReturn (CurrentFunc) && !F_HasReturn (CurrentFunc) && !C99MainFunc) {
|
if (!F_HasVoidReturn (CurrentFunc) && !F_HasReturn (CurrentFunc) && !C99MainFunc && IS_Get (&WarnReturnType)) {
|
||||||
Warning ("Control reaches end of non-void function");
|
Warning ("Control reaches end of non-void function [-Wreturn-type]");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If this is the main function in a C99 environment returning an int, let
|
/* If this is the main function in a C99 environment returning an int, let
|
||||||
|
|||||||
Reference in New Issue
Block a user