From 8db693bdaa3becc17799485bea481d5a52119ca5 Mon Sep 17 00:00:00 2001 From: johanknol Date: Fri, 14 Mar 2003 16:23:16 +0000 Subject: [PATCH] some more on the const, volatile and now also static issue git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2389 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- src/SDCC.y | 15 +++++++++------ src/SDCCsymt.c | 8 ++------ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/SDCC.y b/src/SDCC.y index c8515cd0..44e903b6 100644 --- a/src/SDCC.y +++ b/src/SDCC.y @@ -484,11 +484,11 @@ declaration_specifiers sym_link *lnk = $2 ; while (lnk && !IS_SPEC(lnk->next)) lnk = lnk->next; - lnk->next = mergeSpec($1,lnk->next, yytext); + lnk->next = mergeSpec($1,lnk->next, "storage_class_specifier declaration_specifiers - skipped"); $$ = $2 ; } else - $$ = mergeSpec($1,$2, yytext); + $$ = mergeSpec($1,$2, "storage_class_specifier declaration_specifiers"); } | type_specifier { $$ = $1; } | type_specifier declaration_specifiers { @@ -498,11 +498,11 @@ declaration_specifiers sym_link *lnk = $2 ; while (lnk && !IS_SPEC(lnk->next)) lnk = lnk->next; - lnk->next = mergeSpec($1,lnk->next, yytext); + lnk->next = mergeSpec($1,lnk->next, "type_specifier declaration_specifiers - skipped"); $$ = $2 ; } else - $$ = mergeSpec($1,$2, yytext); + $$ = mergeSpec($1,$2, "type_specifier declaration_specifiers"); } ; @@ -603,6 +603,9 @@ type_specifier2 | CODE { $$ = newLink (SPECIFIER) ; SPEC_SCLS($$) = S_CODE ; + if (port->mem.code_ro) { + SPEC_CONST($$) = 1; + } } | EEPROM { $$ = newLink (SPECIFIER) ; @@ -1008,11 +1011,11 @@ type_specifier_list sym_link *lnk = $2 ; while (lnk && !IS_SPEC(lnk->next)) lnk = lnk->next; - lnk->next = mergeSpec($1,lnk->next, "type_specifier_list"); + lnk->next = mergeSpec($1,lnk->next, "type_specifier_list type_specifier skipped"); $$ = $2 ; } else - $$ = mergeSpec($1,$2, "type_specifier_list"); + $$ = mergeSpec($1,$2, "type_specifier_list type_specifier"); } ; diff --git a/src/SDCCsymt.c b/src/SDCCsymt.c index a2c11a2a..dfec56bb 100644 --- a/src/SDCCsymt.c +++ b/src/SDCCsymt.c @@ -373,9 +373,7 @@ pointerTypes (sym_link * ptr, sym_link * type) break; } /* the storage class of type ends here */ - SPEC_SCLS (type) = - SPEC_CONST (type) = - SPEC_VOLATILE (type) = 0; + SPEC_SCLS (type) = 0; } /* now change all the remaining unknown pointers @@ -558,8 +556,6 @@ void checkTypeSanity(sym_link *etype, char *name) { sym_link * mergeSpec (sym_link * dest, sym_link * src, char *name) { - sym_link *symlink=dest; - if (!IS_SPEC(dest) || !IS_SPEC(src)) { #if 0 werror (E_INTERNAL_ERROR, __FILE__, __LINE__, "cannot merge declarator"); @@ -643,7 +639,7 @@ mergeSpec (sym_link * dest, sym_link * src, char *name) FUNC_INTNO(dest) |= FUNC_INTNO(src); FUNC_REGBANK(dest) |= FUNC_REGBANK(src); - return symlink; + return dest; } /*------------------------------------------------------------------*/ -- 2.30.2