]> git.sur5r.net Git - cc65/commitdiff
Fixed a weird bug. Some special where found to be register variables when they
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 21 Dec 2003 18:54:39 +0000 (18:54 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 21 Dec 2003 18:54:39 +0000 (18:54 +0000)
weren't. Caused by the assignments of the type flags. The flags for the symbol
table entry should get reassigned, because this is not the first time they
caused a problem, but this requires more thought, so I hacked the function
that tests for register vars.

git-svn-id: svn://svn.cc65.org/cc65/trunk@2813 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/symentry.h

index b1f8647035d0de46ebe2f0c7d269d708e86f1de5..530fc9ce1a8ec42e3c4f72ace19b131d17ef6c0a 100644 (file)
@@ -189,11 +189,12 @@ INLINE int SymIsRef (const SymEntry* Sym)
 #if defined(HAVE_INLINE)
 INLINE int SymIsRegVar (const SymEntry* Sym)
 /* Return true if the given entry is a register variable */
+/* ### HACK! Fix the ugly type flags! */
 {
-    return ((Sym->Flags & SC_REGISTER) == SC_REGISTER);
+    return ((Sym->Flags & (SC_REGISTER|SC_TYPE)) == SC_REGISTER);
 }
 #else
-#  define SymIsRegVar(Sym)      (((Sym)->Flags & SC_REGISTER) == SC_REGISTER)
+#  define SymIsRegVar(Sym)      (((Sym)->Flags & (SC_REGISTER|SC_TYPE)) == SC_REGISTER)
 #endif
 
 void CvtRegVarToAuto (SymEntry* Sym);