From d8f824357f2e7645dcb6e7aa61d503a6b732ff43 Mon Sep 17 00:00:00 2001 From: Zeex Date: Sat, 20 Jun 2015 16:45:06 +0600 Subject: [PATCH] Don't remove unused public variables But still warn about them unless they are marked as stock. Fixes #71 --- source/compiler/sc1.c | 2 +- source/compiler/sc6.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/compiler/sc1.c b/source/compiler/sc1.c index 47f7947..7bf8a55 100644 --- a/source/compiler/sc1.c +++ b/source/compiler/sc1.c @@ -1976,7 +1976,7 @@ static void declglb(char *firstname,int firsttag,int fpublic,int fstatic,int fst * second stage), shut off code generation */ cidx=0; /* only to avoid a compiler warning */ - if (sc_status==statWRITE && sym!=NULL && (sym->usage & (uREAD | uWRITTEN))==0) { + if (sc_status==statWRITE && sym!=NULL && (sym->usage & (uREAD | uWRITTEN | uPUBLIC))==0) { sc_status=statSKIP; cidx=code_idx; #if !defined NDEBUG diff --git a/source/compiler/sc6.c b/source/compiler/sc6.c index b22214d..1e235ae 100644 --- a/source/compiler/sc6.c +++ b/source/compiler/sc6.c @@ -747,7 +747,7 @@ SC_FUNC int assemble(FILE *fout,FILE *fin) mainaddr=sym->addr; } /* if */ } else if (sym->ident==iVARIABLE) { - if ((sym->usage & uPUBLIC)!=0 && (sym->usage & (uREAD | uWRITTEN))!=0) + if ((sym->usage & uPUBLIC)!=0) match=++numpubvars; } /* if */ if (match) { @@ -924,7 +924,7 @@ SC_FUNC int assemble(FILE *fout,FILE *fin) /* write the public variables table */ count=0; for (sym=glbtab.next; sym!=NULL; sym=sym->next) { - if (sym->ident==iVARIABLE && (sym->usage & uPUBLIC)!=0 && (sym->usage & (uREAD | uWRITTEN))!=0) { + if (sym->ident==iVARIABLE && (sym->usage & uPUBLIC)!=0) { assert((sym->usage & uDEFINE)!=0); assert(sym->vclass==sGLOBAL); func.address=sym->addr;