More fixes for Watcom C / C89.

git-svn-id: svn://svn.cc65.org/cc65/trunk@3829 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz
2008-03-31 21:28:50 +00:00
parent 11e0421fa7
commit 225e1ca58e
5 changed files with 16 additions and 7 deletions

View File

@@ -147,13 +147,14 @@ static void NewSymbol (const char* SymName, long Val)
/* Define a symbol with a fixed numeric value in the current scope */ /* Define a symbol with a fixed numeric value in the current scope */
{ {
ExprNode* Expr; ExprNode* Expr;
SymEntry* Sym;
/* Convert the name to a string buffer */ /* Convert the name to a string buffer */
StrBuf SymBuf = STATIC_STRBUF_INITIALIZER; StrBuf SymBuf = STATIC_STRBUF_INITIALIZER;
SB_CopyStr (&SymBuf, SymName); SB_CopyStr (&SymBuf, SymName);
/* Search for the symbol, allocate a new one if it doesn't exist */ /* Search for the symbol, allocate a new one if it doesn't exist */
SymEntry* Sym = SymFind (CurrentScope, &SymBuf, SYM_ALLOC_NEW); Sym = SymFind (CurrentScope, &SymBuf, SYM_ALLOC_NEW);
/* Check if have already a symbol with this name */ /* Check if have already a symbol with this name */
if (SymIsDef (Sym)) { if (SymIsDef (Sym)) {
@@ -295,7 +296,7 @@ static void DefineSymbol (const char* Def)
InvDef (Def); InvDef (Def);
} }
P = Def; P = Def;
/* Copy the symbol, checking the rest */ /* Copy the symbol, checking the rest */
I = 0; I = 0;
while (IsIdChar (*P)) { while (IsIdChar (*P)) {

View File

@@ -1144,7 +1144,7 @@ static void DoInclude (void)
/* Name must follow */ /* Name must follow */
if (Tok != TOK_STRCON) { if (Tok != TOK_STRCON) {
ErrorSkip ("String constant expected"); ErrorSkip ("String constant expected");
} else { } else {
SB_Terminate (&SVal); SB_Terminate (&SVal);
NewInputFile (SB_GetConstBuf (&SVal)); NewInputFile (SB_GetConstBuf (&SVal));
} }
@@ -1558,9 +1558,11 @@ static void DoSetCPU (void)
if (Tok != TOK_STRCON) { if (Tok != TOK_STRCON) {
ErrorSkip ("String constant expected"); ErrorSkip ("String constant expected");
} else { } else {
cpu_t CPU;
/* Try to find the CPU */ /* Try to find the CPU */
SB_Terminate (&SVal); SB_Terminate (&SVal);
cpu_t CPU = FindCPU (SB_GetConstBuf (&SVal)); CPU = FindCPU (SB_GetConstBuf (&SVal));
/* Switch to the new CPU */ /* Switch to the new CPU */
SetCPU (CPU); SetCPU (CPU);

View File

@@ -646,9 +646,13 @@ static unsigned char FindDotKeyword (void)
* return TOK_NONE if not found. * return TOK_NONE if not found.
*/ */
{ {
struct DotKeyword K = { SB_GetConstBuf (&SVal), 0 }; struct DotKeyword K;
struct DotKeyword* R; struct DotKeyword* R;
/* Initialize K */
K.Key = SB_GetConstBuf (&SVal);
K.Tok = 0;
/* If we aren't in ignore case mode, we have to uppercase the keyword */ /* If we aren't in ignore case mode, we have to uppercase the keyword */
if (!IgnoreCase) { if (!IgnoreCase) {
UpcaseSVal (); UpcaseSVal ();

View File

@@ -62,12 +62,13 @@ SymTable* ParseScopedIdent (StrBuf* Name, StrBuf* FullName)
* by the caller for error messages or similar. * by the caller for error messages or similar.
*/ */
{ {
SymTable* Scope;
/* Clear both passed string buffers */ /* Clear both passed string buffers */
SB_Clear (Name); SB_Clear (Name);
SB_Clear (FullName); SB_Clear (FullName);
/* Get the starting table */ /* Get the starting table */
SymTable* Scope;
if (Tok == TOK_NAMESPACE) { if (Tok == TOK_NAMESPACE) {
/* Start from the root scope */ /* Start from the root scope */

View File

@@ -312,7 +312,7 @@ INLINE const StrBuf* GetSymName (const SymEntry* S)
return GetStrBuf (S->Name); return GetStrBuf (S->Name);
} }
#else #else
# define GetSymName(S) GetString ((S)->Name) # define GetSymName(S) GetStrBuf ((S)->Name)
#endif #endif
#if defined(HAVE_INLINE) #if defined(HAVE_INLINE)
@@ -353,3 +353,4 @@ INLINE const FilePos* GetSymPos (const SymEntry* S)