Fixed compound expressions of the type y = (x+K) OP B, where x and y are variables...
[fw/sdcc] / src / SDCC.y
index c8515cd0a60587787e5ddc51fa9d6a61190006b5..25ba60f94c3fe74bba1db7dc218c038862df1225 100644 (file)
@@ -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");
    }
    ;
 
@@ -973,6 +973,7 @@ pointer
                     DCL_TYPE($3) = POINTER ;
                     break;
                 case S_CODE:
+                    DCL_PTR_CONST($3) = 1;
                     DCL_TYPE($3) = CPOINTER ;
                     break;
                 case S_EEPROM:
@@ -1008,11 +1009,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");
    }
    ;