git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2389
4a8a32a2-be11-0410-ad9d-
d568d2c75423
sym_link *lnk = $2 ;
while (lnk && !IS_SPEC(lnk->next))
lnk = lnk->next;
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");
- $$ = mergeSpec($1,$2, yytext);
+ $$ = mergeSpec($1,$2, "storage_class_specifier declaration_specifiers");
}
| type_specifier { $$ = $1; }
| type_specifier declaration_specifiers {
}
| type_specifier { $$ = $1; }
| type_specifier declaration_specifiers {
sym_link *lnk = $2 ;
while (lnk && !IS_SPEC(lnk->next))
lnk = lnk->next;
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");
- $$ = mergeSpec($1,$2, yytext);
+ $$ = mergeSpec($1,$2, "type_specifier declaration_specifiers");
| CODE {
$$ = newLink (SPECIFIER) ;
SPEC_SCLS($$) = S_CODE ;
| CODE {
$$ = newLink (SPECIFIER) ;
SPEC_SCLS($$) = S_CODE ;
+ if (port->mem.code_ro) {
+ SPEC_CONST($$) = 1;
+ }
}
| EEPROM {
$$ = newLink (SPECIFIER) ;
}
| EEPROM {
$$ = newLink (SPECIFIER) ;
sym_link *lnk = $2 ;
while (lnk && !IS_SPEC(lnk->next))
lnk = lnk->next;
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");
- $$ = mergeSpec($1,$2, "type_specifier_list");
+ $$ = mergeSpec($1,$2, "type_specifier_list type_specifier");
break;
}
/* the storage class of type ends here */
break;
}
/* the storage class of type ends here */
- SPEC_SCLS (type) =
- SPEC_CONST (type) =
- SPEC_VOLATILE (type) = 0;
}
/* now change all the remaining unknown pointers
}
/* now change all the remaining unknown pointers
sym_link *
mergeSpec (sym_link * dest, sym_link * src, 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");
if (!IS_SPEC(dest) || !IS_SPEC(src)) {
#if 0
werror (E_INTERNAL_ERROR, __FILE__, __LINE__, "cannot merge declarator");
FUNC_INTNO(dest) |= FUNC_INTNO(src);
FUNC_REGBANK(dest) |= FUNC_REGBANK(src);
FUNC_INTNO(dest) |= FUNC_INTNO(src);
FUNC_REGBANK(dest) |= FUNC_REGBANK(src);
}
/*------------------------------------------------------------------*/
}
/*------------------------------------------------------------------*/