]> git.sur5r.net Git - cc65/commitdiff
Remove SCOPE_PROC. It's a .SCOPE with an owner symbol.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 31 Jul 2011 17:10:33 +0000 (17:10 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 31 Jul 2011 17:10:33 +0000 (17:10 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@5098 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ca65/pseudo.c
src/ca65/symtab.c
src/ca65/symtab.h
src/common/scopedefs.h

index 03905986c7e371a0b28c69074198278b229235e2..81e5273cec97150cbca03d58a7a7c7b9b00a2ae8 100644 (file)
@@ -817,7 +817,7 @@ static void DoEnd (void)
 static void DoEndProc (void)
 /* Leave a lexical level */
 {
-    if (GetCurrentSymTabType () != SCOPE_PROC) {
+    if (CurrentScope->Type != SCOPE_SCOPE || CurrentScope->OwnerSym == 0) {
         /* No local scope */
         ErrorSkip ("No open .PROC");
     } else {
@@ -830,7 +830,7 @@ static void DoEndProc (void)
 static void DoEndScope (void)
 /* Leave a lexical level */
 {
-    if ( GetCurrentSymTabType () != SCOPE_SCOPE) {
+    if (CurrentScope->Type != SCOPE_SCOPE || CurrentScope->OwnerSym != 0) {
         /* No local scope */
         ErrorSkip ("No open .SCOPE");
     } else {
@@ -1539,7 +1539,7 @@ static void DoProc (void)
     }
 
     /* Enter a new scope */
-    SymEnterLevel (&Name, SCOPE_PROC, AddrSize, Sym);
+    SymEnterLevel (&Name, SCOPE_SCOPE, AddrSize, Sym);
 
     /* Free memory for Name */
     SB_Done (&Name);
index d038d7cf38404e47776a89405f67d89a6e34f3c2..5b92538e1483c8577447ce3225ccd8fd2f162870 100644 (file)
@@ -421,15 +421,6 @@ SymEntry* SymFindAny (SymTable* Scope, const StrBuf* Name)
 
 
 
-unsigned char GetCurrentSymTabType ()
-/* Return the type of the current symbol table */
-{
-    CHECK (CurrentScope != 0);
-    return CurrentScope->Type;
-}
-
-
-
 static void SymCheckUndefined (SymEntry* S)
 /* Handle an undefined symbol */
 {
index 18469cc659c670ae8a30ddb78c7d803e2f7c58da..36d37133b26e892acef841e4e243e88f8e7782b6 100644 (file)
@@ -137,9 +137,6 @@ INLINE unsigned char GetSymTabType (const SymTable* S)
 #  define GetSymTabType(S)      ((S)->Type)
 #endif
 
-unsigned char GetCurrentSymTabType ();
-/* Return the type of the current symbol table */
-
 void SymCheck (void);
 /* Run through all symbols and check for anomalies and errors */
 
index 7732a4652f746bbac8bddec8a1fd86c2fad14380..b36b788d684c928ded9e4b9ea51c4038b64a63f3 100644 (file)
@@ -56,8 +56,7 @@
 enum {
     SCOPE_GLOBAL,                       /* Global level */
     SCOPE_FILE,                         /* File level */
-    SCOPE_PROC,                         /* .PROC */
-    SCOPE_SCOPE,                        /* .SCOPE */
+    SCOPE_SCOPE,                        /* .SCOPE/.PROC */
     SCOPE_HAS_DATA = SCOPE_SCOPE,       /* Last scope that contains data */
     SCOPE_STRUCT,                       /* .STRUCT/.UNION */
     SCOPE_ENUM,                         /* .ENUM */