X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fcc65%2Fsymtab.c;h=5a7c740d3316169b4cb2cc491e6d80f0ae30b180;hb=9b7c16ec4cbb5282642c377272224e3fc825f860;hp=4e4ebbc82cb778c767b658d60db232eac0faf2f5;hpb=94a22234434b6bc7a23f7a1b4e9d6aff2fbe7399;p=cc65 diff --git a/src/cc65/symtab.c b/src/cc65/symtab.c index 4e4ebbc82..5a7c740d3 100644 --- a/src/cc65/symtab.c +++ b/src/cc65/symtab.c @@ -162,11 +162,16 @@ static void CheckSymTable (SymTable* Tab) * defined but not used. */ if (((Flags & SC_AUTO) || (Flags & SC_STATIC)) && (Flags & SC_EXTERN) == 0) { - if (SymIsDef (Entry) && !SymIsRef (Entry)) { + if (SymIsDef (Entry) && !SymIsRef (Entry) && + !SymHasAttr (Entry, atUnused)) { if (Flags & SC_PARAM) { - Warning ("Parameter `%s' is never used", Entry->Name); + if (IS_Get (&WarnUnusedParam)) { + Warning ("Parameter `%s' is never used", Entry->Name); + } } else { - Warning ("`%s' is defined but never used", Entry->Name); + if (IS_Get (&WarnUnusedVar)) { + Warning ("`%s' is defined but never used", Entry->Name); + } } } } @@ -178,7 +183,9 @@ static void CheckSymTable (SymTable* Tab) Error ("Undefined label: `%s'", Entry->Name); } else if (!SymIsRef (Entry)) { /* Defined but not used */ - Warning ("`%s' is defined but never used", Entry->Name); + if (IS_Get (&WarnUnusedLabel)) { + Warning ("`%s' is defined but never used", Entry->Name); + } } } @@ -762,7 +769,7 @@ SymEntry* AddGlobalSym (const char* Name, const Type* T, unsigned Flags) TypeCmp (T + 1, EType + 1) < TC_EQUAL) { /* Types not identical: Conflicting types */ Error ("Conflicting types for `%s'", Name); - return Entry; + return Entry; } else { /* Check if we have a size in the existing definition */ if (ESize == UNSPECIFIED) { @@ -775,7 +782,7 @@ SymEntry* AddGlobalSym (const char* Name, const Type* T, unsigned Flags) /* New type must be identical */ if (TypeCmp (EType, T) < TC_EQUAL) { Error ("Conflicting types for `%s'", Name); - return Entry; + return Entry; } /* In case of a function, use the new type descriptor, since it @@ -785,9 +792,9 @@ SymEntry* AddGlobalSym (const char* Name, const Type* T, unsigned Flags) * empty parameter list. */ if (IsFunc) { - /* Get the function descriptor from the new type */ - FuncDesc* F = GetFuncDesc (T); - /* Use this new function descriptor if it doesn't contain + /* Get the function descriptor from the new type */ + FuncDesc* F = GetFuncDesc (T); + /* Use this new function descriptor if it doesn't contain * an empty parameter list. */ if ((F->Flags & FD_EMPTY) == 0) {