Fixed a problem reported by thefox: A symbol reference with an explicit scope
specification that is used when the scope is already closed, has be made a trampoline symbol later, referencing a symbol outside of the scope explicit specified. git-svn-id: svn://svn.cc65.org/cc65/trunk@5880 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
/* */
|
||||
/* */
|
||||
/* */
|
||||
/* (C) 1998-2011, Ullrich von Bassewitz */
|
||||
/* (C) 1998-2012, Ullrich von Bassewitz */
|
||||
/* Roemerstrasse 52 */
|
||||
/* D-70794 Filderstadt */
|
||||
/* EMail: uz@cc65.org */
|
||||
@@ -58,6 +58,7 @@
|
||||
/* Symbol table flags */
|
||||
#define ST_NONE 0x00 /* No flags */
|
||||
#define ST_DEFINED 0x01 /* Scope has been defined */
|
||||
#define ST_CLOSED 0x02 /* Scope is closed */
|
||||
|
||||
/* A symbol table */
|
||||
typedef struct SymTable SymTable;
|
||||
@@ -136,6 +137,16 @@ INLINE unsigned char GetSymTabType (const SymTable* S)
|
||||
# define GetSymTabType(S) ((S)->Type)
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_INLINE)
|
||||
INLINE int SymTabIsClosed (const SymTable* S)
|
||||
/* Return true if the symbol table has been closed */
|
||||
{
|
||||
return (S->Flags & ST_CLOSED) != 0;
|
||||
}
|
||||
#else
|
||||
# define SymTabIsClosed(S) (((S)->Flags & ST_CLOSED) != 0)
|
||||
#endif
|
||||
|
||||
void SymCheck (void);
|
||||
/* Run through all symbols and check for anomalies and errors */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user